Skip to main content
 首页 » 编程设计

python之numpy bincount之选择最大权重而不是对所有权重求和

2025年05月04日15qq78292959

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