用途numpy.add.at
:
>>> import numpy as np
>>> A = np.array([1,2,3])
>>> B = np.array([10,20,30])
>>> I = np.array([0,1,1])
>>>
>>> np.add.at(A, I, B)
>>> A
array([11, 52, 3])
或者,np.bincount
:
>>> A = np.array([1,2,3])
>>> B = np.array([10,20,30])
>>> I = np.array([0,1,1])
>>>
>>> A += np.bincount(I, B, minlength=A.size).astype(int)
>>> A
array([11, 52, 3])
哪个更快?
依靠。在这个具体示例中,add.at
速度似乎稍快一些,大概是因为我们需要在bincount
解决方案中转换类型。
如果OTOHA
并B
为float
D类,然后bincount
会更快。