NumPy使用索引数组将一个数组存储在另一个数组中
问题内容:
我的问题是有关我想使用numpy表示的特定数组操作。
我有一个浮点数组w
和一个idx
与长度相同的索引数组,w
我想将所有w
具有相同idx
值的值相加并将它们收集在一个数组中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开始,您还可以将minlength传递给bincount
。