逻辑上加入numpy

时间:2013-08-30 07:46:35

标签: python arrays numpy

我想做以下操作。但它喜欢直方图操作。

maxIndex = 6    
dst  =zeros((1,6))
a    =array([1,2,3,4,7,0,3,4,5,7])
index=array([1,1,1,3,3,4,4,5,5,5])

a的长度== index的长度,

for i in (a.size):
    dst[index[i]] = dst[index[i]] + a[i]

我怎样才能做到更加pythonic。更有效率

1 个答案:

答案 0 :(得分:4)

如果我理解正确,我认为您正在寻找numpy.bincount

dst = numpy.bincount(index, weights=a, minlength=maxIndex)

这会给我array([ 0., 6., 0., 11., 3., 16.])作为输出。如果您不想手动计算maxIndex,可以省略函数调用中的minlength参数,numpy将为您返回一个适当大小的数组。