NumPy参考 >例行程序 >Statistics > numpy.bincount
numpy.
bincount
(x,weights = None,minlength = 0 )¶计算非负整数数组中每个值的出现次数。
箱数(大小为1)比x中的最大值大
1。如果指定了minlength,则输出数组中至少会有此bin数量(尽管如果需要,它会更长一些,具体取决于x的内容)。每个bin以x给出其索引值出现的次数。如果指定了权重,则输入数组将由其加权,即,如果n
在position处找到一个值i
,而不是。out[n] += weight[i]
out[n] += 1
输入数组。
权重,与x形状相同的数组。
输出阵列的最小箱数。
1.6.0版中的新功能。
合并输入数组的结果。out的长度等于np.amax(x)+1
。
如果输入不是一维的,或包含具有负值的元素,或者minlength为负。
输入的类型是浮点型还是复杂型。
例子
>>> np.bincount(np.arange(5))
array([1, 1, 1, 1, 1])
>>> np.bincount(np.array([0, 1, 1, 3, 2, 1, 7]))
array([1, 3, 1, 1, 0, 0, 0, 1])
>>> x = np.array([0, 1, 1, 3, 2, 1, 7, 23])
>>> np.bincount(x).size == np.amax(x)+1
True
输入数组必须为整数dtype,否则将引发TypeError:
>>> np.bincount(np.arange(5, dtype=float))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: array cannot be safely cast to required type
的一种可能用法bincount
是使用weights
关键字对数组的可变大小的块执行求和。
>>> w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6]) # weights
>>> x = np.array([0, 1, 1, 2, 2, 2])
>>> np.bincount(x, weights=w)
array([ 0.3, 0.7, 1.1])