numpy.bincount #
- 麻木的。bincount ( x , / ,权重= None , minlength = 0 ) #
计算非负整数数组中每个值出现的次数。
bin 的数量(大小为 1)比x中的最大值大 1 。如果指定了minlength,则输出数组中至少会有这个数量的 bin(尽管必要时会更长,具体取决于x的内容)。每个 bin 给出其索引值在x中出现的次数。如果指定了权重,则输入数组将按其加权,即如果
n
在位置 找到值i
,而不是。out[n] += weight[i]
out[n] += 1
- 参数:
- x array_like,一维,非负整数
输入数组。
- 权重数组,可选
权重,与x形状相同的数组。
- minlength int,可选
输出数组的最小 bin 数。
1.6.0 版本中的新增功能。
- 返回:
- 输出ndarray 的整数
对输入数组进行装箱的结果。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
输入数组必须是整数数据类型,否则会引发 TypeError:
>>> np.bincount(np.arange(5, dtype=float)) Traceback (most recent call last): ... TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe'
可能的用途
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])