python – Numpy使用索引数组在另一个数组中累积一个数组

我的问题是关于一个特定的数组操作,我想用numpy来表达.

我有一个浮动数组w和一个与w相同长度的索引idx的数组,我想用所有相同的idx值来总结w并将它们收集到一个数组v中.
作为循环,这看起来像这样:

for i, x in enumerate(w):
     v[idx[i]] += x

有没有办法使用数组操作?
我的猜测是v [idx] = w但是不起作用,因为idx包含相同的索引多次.

谢谢!

最佳答案
为此目的引入了numpy.bincount:

tmp = np.bincount(idx, w)
v[:len(tmp)] += tmp

我认为从1.6开始,你也可以将最小长度传递给bincount.

转载注明原文:python – Numpy使用索引数组在另一个数组中累积一个数组 - 代码日志