Numpy 2D数组按行减法

Fat*_*ons 5 python numpy

我正在努力对以下操作进行矢量化.我有一个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)

谢谢!

nne*_*neo 2

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

arr = temp_result
diffs = arr[:,None,:] - arr[None,:,:]
Run Code Online (Sandbox Code Playgroud)

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