mindspore.ops.bincount

mindspore.ops.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

说明

如果 input 含有负数元素,则结果未定义。

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

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

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

返回:

Tensor,如果输入为非空,输出shape为[max(input)+1]的Tensor,否则shape为[0]。

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

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

  • ValueError - 如果 minlength 是负整数。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> x = Tensor([2, 4, 1, 0, 0], dtype=mstype.int64)
>>> print(ops.bincount(x, minlength=7))
[2. 1. 1. 0. 1. 0. 0.]
>>> weights = Tensor([0, 0.25, 0.5, 0.75, 1], dtype=mstype.float32)
>>> print(ops.bincount(x, weights=weights))
[1.75 0.5  0.   0.   0.25]