>>> a
array([[1, 2],
[3, 4],
[5, 6]])
>>>b
array([[1, 2],
[4, 3]])
我想做的是
b[0,:]-=a[0,:], b[1,:]-=a[1,:], b[0,:]-=a[2,:]
但以下情况并不奏效:
>>> b[[0,1,0],:]-=a
>>> b
array([[-4, -4], # want [-5, -6]
[ 1, -1]])
如何在不使用for循环的情况下实现这一目标?
答案 0 :(得分:2)
使用np.subtract.at
-
np.subtract.at(b,[0,1,0],a)
示例运行 -
In [15]: a
Out[15]:
array([[1, 2],
[3, 4],
[5, 6]])
In [16]: b
Out[16]:
array([[1, 2],
[4, 3]])
In [17]: np.subtract.at(b,[0,1,0],a)
In [18]: b
Out[18]:
array([[-5, -6],
[ 1, -1]])