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

And*_*ler 11 python arrays numpy

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

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

for i, x in enumerate(w):
     v[idx[i]] += x
Run Code Online (Sandbox Code Playgroud)

有没有办法用数组运算来做到这一点?我的猜测是,v[idx] += w但这不起作用,因为idx多次包含相同的索引.

谢谢!

Bi *_*ico 15

numpy.bincount 为此目的介绍:

tmp = np.bincount(idx, w)
v[:len(tmp)] += tmp
Run Code Online (Sandbox Code Playgroud)

我认为从1.6开始你也可以通过一个minlength bincount.