我正在努力向量化以下操作。我有一個x,y,z距離數組,我需要找出每個向量之間的差異。Numpy 2D數組按行減行
temp_result = np.array([[0.8, 0., 1.], [0., -0.6, 1.],[0.8, 0., 1.]])
我打算做的是不用循環迭代進行相減。
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]
謝謝!
這裏有一個更簡潔的版本:'diffs = arr [:,None] - arr [None,:]'。這是numpy廣播能力的一個例子(http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html)。 –
我正在利用廣播;你在那裏做的是隱式地使用'newaxis'(這是一個很好的解決方案)。我會將其添加到答案中,謝謝! – nneonneo
對不起,我不是故意暗示你沒有使用廣播!該聲明是對該方法的一般評論。 –