我正在努力对以下操作进行矢量化。我有一个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]
谢谢!
答案 0 :(得分:2)
这是一个很好的基于重塑的技巧:
arr = temp_result
diffs = arr[:,None,:] - arr[None,:,:]
然后在arr[i]
中找到arr[j]
和diffs[i,j]
之间的向量差异。
答案 1 :(得分:0)
查看scipy.spatial.distance,你有所有距离的功能。