【发布时间】:2014-10-17 17:17:28
【问题描述】:
在 python 中是否有一种快速的方法来执行一个简单的操作,从而产生一个矩阵,例如A[i,j] = a[i] - b[j]
给定两个数组 a 和 b(长度相同,但这可能不相关)?
更准确地说,我拥有的是二维空间中的 N 个点,其位置存储在两个数组 dx 和 dy 中,还有 N 个点的位置存储在 tx 和 ty 中。 我需要一个矩阵
A[i,j] = (dx[j]-tx[i])**2+(dy[j]-ty[i])**2
我想到的唯一方法就是做
A = np.empty([nData,nData])
for i in range(nData):
A[i] = (dx-tx[i])**2+(dy-ty[i])**2
return A
问题是这太慢了(nData 会很大)。如果可以更快地更改表示法,我们欢迎任何更改。
(顺便问一下,x**2 是不是比 x*x 慢?)
【问题讨论】:
-
请展示一个最小的数据示例和预期结果。
标签: python optimization numpy