是否可以使用 np.bincount
但得到最大值而不是权重总和?这里,索引 3
处的 bbb
有两个值,11.1
和 55.5
。我想要 55.5
,而不是 66.6
。我怀疑我选择使用其他功能,但不太确定哪个功能适合此目的。
bbb = np.array([ 3, 7, 11, 13, 3])
weight = np.array([ 11.1, 22.2, 33.3, 44.4, 55.5])
print np.bincount(bbb, weight, minlength=15)
OUT >> [ 0. 0. 0. 66.6 0. 0. 0. 22.2 0. 0. 0. 33.3 0. 44.4 0. ]
注意,实际上bbb
和weight
都很大(大约5e6
个元素)。
solution to your 2D question对于一维情况也有效,因此您可以使用 np.maxmimum.at
out = np.zeros(15)
np.maximum.at(out, bbb, weight)
# array([ 0. , 0. , 0. , 55.5, 0. , 0. , 0. , 22.2, 0. ,
# 0. , 0. , 33.3, 0. , 44.4, 0. ])
我是一名优秀的程序员,十分优秀!