- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 Python 的 Numpy 模块中,是否有一个函数可以计算数组上的长/高级数学表达式?我听说过 numexp 模块,但不想进一步依赖它。
更好的是,我能否将这些表达式限制为仅表示数组中子数组的第一个或第二个元素,而不必将它们解包为单独的数组?
这是我的具体问题。我有一个包含地理点坐标的数组数组,如下所示:[[x1,y1]、[x2,y2]、[x3,y3] 等...]。我想要的是将这些地理坐标转换为像素坐标,以便可以在图像上绘制它们。因此,我想对每个子数组的第一个元素(即 xs)运行以下表达式/计算:
((180+X)/360)*screenwidthpixels
然后在第二个元素上,即 ys:
((-90+Y)/180)*-screenheightpixels
这些表达式可以在 python for 循环中工作,但速度太慢,这就是我转向 Numpy 的原因。我知道我可以并且已经尝试过将 numpys 单个数学运算符函数相互链接起来但仍然太慢,此外,为此我首先必须解压缩所有 xs 和 ys 以分离数组并在计算后将它们重新打包在一起它甚至更慢。
所以我想我正在寻找一种更直接的 Numpy 方法,使用更少的步骤来使用上面的表达式转换我的坐标数组。有什么想法吗?
最佳答案
import numpy as np
points = np.random.rand(10,2)
translation = np.array([180,-90])
scaling = np.array([1024, -768]) / np.array([360,180])
transformed_points = (points + translation) * scaling
这将满足您的需求。它依靠 numpy 广播规则来实现表现力和性能。
但与其解释它是如何工作的,我认为你最好自己找一本好的 numpy 入门书,然后从头开始。 numpy 是 python 最好的东西之一,多学一点就不会错。可以这么说,numpy 肯定能胜任您所面临的任务。
关于python - 使用 Numpy(坐标变换)计算长表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20921640/
Java 是否存在任何开源或“免费”库,我可以在其中执行从一个空间系统到另一个空间系统的坐标转换? 我找到了 Opengeo http://opengeo.org/但它是一个庞大而全面的图书馆,可以容
我正在尝试使用 java 2d 图形库绘制图形,我认为我已经有了它。我想在坐标系中绘制,其中 0,0 位于面板左边缘的中心。我使用了以下代码,它似乎给了我我需要的结果。 private void do
给出的是一个旋转的矩形,它内接于另一个矩形。 两个矩形都有自己的坐标系。 在内接和旋转的矩形中,有一个点P,其坐标相对于该矩形(红色)。 想要的是该点相对于外部矩形(绿色)的坐标: 编辑:还给出了两个
我试图理解这段代码: def add_inset(ax, rect, *args, **kwargs): box = ax.get_position() inax_position =
在 Python 的 Numpy 模块中,是否有一个函数可以计算数组上的长/高级数学表达式?我听说过 numexp 模块,但不想进一步依赖它。 更好的是,我能否将这些表达式限制为仅表示数组中子数组的第
我有 2 个 3D 体积,它们是彼此的变形版本,我正在尝试估计变形函数。我知道失真是连续且可区分的,但不是简单的仿射变换。我也知道每个点的失真幅度可能不是很大。我有几对 anchor ,我知道它们对应
我是一名优秀的程序员,十分优秀!