是否可以使用 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. ])
