我正在努力对以下操作进行矢量化.我有一个x,y,z距离的数组,我需要找到每个矢量之间的差异.
temp_result = np.array([[0.8, 0., 1.], [0., -0.6, 1.],[0.8, 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
我打算做的是在不使用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]
Run Code Online (Sandbox Code Playgroud)
谢谢!
这是一个很好的基于重塑的技巧:
arr = temp_result
diffs = arr[:,None,:] - arr[None,:,:]
Run Code Online (Sandbox Code Playgroud)
然后在 中找到arr[i]和之间的向量差。arr[j]diffs[i,j]