它大致说bin的数量比x中的最大值大1,每个bin给出了它的索引值在x中出现的次数。
import numpy as np
#bincount()计算索引出现次数
x=np.array([1,2,3,3,0,1,4,0,6])
'''
我们要统计x中从0开始到最大值出现的次数,所以索引值的范围应该是[0,max]闭区间,
因此bin的数量为 max+1。
x中的最大数字是6,因此bin的数量为7,那么它的索引值为0->6
'''
print(np.bincount(x))
[2 2 1 2 1 0 1]
下面,解释一下weights这个参数。文档说,如果weights参数被指定,那么x会被它加权,也就是说,如果值n发现在位置i,那么out[n] += weight[i]而不是out[n] += 1.**因此,我们weights的大小必须与x相同,否则报错。
w=np.array([0.3,0.5,0.7,0.6,0.1,-0.9,1,0.2,0.4])
print(np.bincount(x,weights=w))
[ 0.3 -0.6 0.5 1.3 1. 0. 0.4]
现在来解释一下,这些值都是怎么计算出来的。首先0在x中的索引是4,7,然后找到w[4]和w[7]的值相加得到0.3;1在x中的索引是0,5,然后找到w[0]和w[5]的值相加得到-0.6;2在x中的索引是1,然后找到w[1]的值