Bil*_*ill 2 python arrays numpy
我有两个相同维度的数组:
a = np.array([ 1, 1, 2, 0, 0, 1])
b = np.array([50, 51, 6, 10, 3, 2])
Run Code Online (Sandbox Code Playgroud)
我想b根据指数总结元素a.
在i我想要的矩阵个元素将是所有值的总和b[j],使得a[j]==i.
所以结果应该是一个三维数组 [10 + 3, 50 + 51 + 2, 6]
有一个numpy方式来做到这一点?我有一些非常大的数组,我需要在多个维度上这样求和,所以不得不执行显式循环.
unu*_*tbu 10
numpy.bincount有一个weights参数可以满足您的需求:
In [36]: np.bincount(a, weights=b)
Out[36]: array([ 13., 103., 6.])
Run Code Online (Sandbox Code Playgroud)