当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.array.bincount用法及代码示例


用法:

dask.array.bincount(x, /, weights=None, minlength=0)

此文档字符串是从 numpy.bincount 复制的。

可能存在与 Dask 版本的一些不一致之处。

计算非负整数数组中每个值的出现次数。

bin 的数量(大小为 1)比 x 中的最大值大一。如果指定了 minlength ,则输出数组中至少会有这个数量的 bin(尽管必要时会更长,具体取决于 x 的内容)。每个 bin 在 x 中给出其索引值的出现次数。如果指定了 weights ,则输入数组由它加权,即如果在位置 i , out[n] += weight[i] 而不是 out[n] += 1 找到值 n

参数

x数组,一维,非负整数

输入数组。

weights数组,可选

权重,与 x 形状相同的数组。

minlength整数,可选

输出数组的最小 bin 数。

返回

out整数数组

对输入数组进行分箱的结果。 out 的长度等于 np.amax(x)+1

抛出

ValueError

如果输入不是一维的,或者包含具有负值的元素,或者如果minlength 为负。

TypeError

如果输入的类型是浮点数或复数。

例子

>>> 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):
  ...
TypeError: Cannot cast array data from dtype('float64') to dtype('int64')
according to the rule 'safe'

bincount 的一个可能用途是使用 weights 关键字对数组的 variable-size 块执行求和。

>>> 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])

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.bincount。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。