mindspore.mint.bincount

查看源文件
mindspore.mint.bincount(input, weights=None, minlength=0)[源代码]

统计 input 中每个值的出现次数。

如果不指定 minlength ,输出Tensor的长度为输入 input 中最大值加1。如果指定了 minlength,则输出Tensor的长度为 input 中最大值加1和 minlength 的最大值。

输出Tensor中每个值标记了该索引值在 input 中的出现次数。如果指定了 weights,对输出的结果进行加权处理,即 \(out[n]+=weight[i]\) 而不是 \(out[n]+=1\)

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 一维的Tensor。

  • weights (Tensor,可选) - 权重,与 input shape相同。默认值: None

  • minlength (int,可选) - 输出Tensor的最小长度,应为非负数。默认值: 0

返回:

Tensor,如果输入为非空,输出shape为 \((max(max(input)+1, minlength), )\),否则shape为 \((0, )\)

异常:
  • TypeError - 如果 inputweights 不是Tensor。

  • ValueError - 如果 input 中存在负数。

  • ValueError - 如果 input 不是一维的,或者 inputweights 不具有相同的shape。

支持平台:

Ascend

样例:

>>> from mindspore import mint
>>> print(mint.bincount(np.arange(5)))
[1. 1. 1. 1. 1.]
>>> print(mint.bincount(np.array([0, 1, 1, 3, 2, 1, 7])))
[1. 3. 1. 1. 0. 0. 0. 1.]
>>> w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6]) # weights
>>> x = np.array([0, 1, 1, 2, 2, 2])
>>> print(mint.bincount(x,  weights=w, minlength=5))
[0.3 0.7 1.1 0.0 0.0]