5

我正在努力矢量化以下操作。我有一组 x,y,z 距离,我需要找到每个向量之间的差异。

temp_result = np.array([[0.8, 0., 1.], [0., -0.6, 1.],[0.8, 0., 1.]])

我打算做的是减去而不使用 for 循环迭代。

 temp_result[0] - temp_result[0]
 temp_result[0] - temp_result[1]
 temp_result[0] - temp_result[2]
 temp_result[1] - temp_result[0]
 temp_result[1] - temp_result[1]
 temp_result[1] - temp_result[2]
 temp_result[2] - temp_result[0]
 temp_result[2] - temp_result[1]
 temp_result[2] - temp_result[2]

谢谢!

4

2 回答 2

2

这是一个很好的基于重塑的技巧:

arr = temp_result
diffs = arr[:,None,:] - arr[None,:,:]

然后在中找到arr[i]和之间的向量差。arr[j]diffs[i,j]

于 2012-10-10T05:49:55.983 回答
0

查看 scipy.spatial.distance,你有所有距离和所有距离的函数。

于 2012-10-10T03:56:55.340 回答