我正在努力向量化以下操作。我有一个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
对不起,我不是故意暗示你没有使用广播!该声明是对该方法的一般评论。 –