mindspore.mint.count_nonzero

查看源文件
mindspore.mint.count_nonzero(input, dim=None)[源代码]

计算输入Tensor指定轴上的非零元素的数量。如果没有指定维度,则计算Tensor中所有非零元素的数量。

警告

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

参数:
  • input (Tensor) - 要计算非零元素个数的输入。其shape为 \((*)\) ,其中 \(*\) 为任意维度。

  • dim (Union[None, int, tuple(int), list(int)], 可选) - 要沿其计算非零值数量的维度。默认值: None ,计算所有非零元素的个数。求和的维度。如果 dimNone ,对Tensor中的所有元素求和。

返回:

Tensor,指定的轴上非零元素数量。

异常:
  • TypeError - input 不是Tensor类型。

  • TypeError - dim 类型不是int,tuple(int),list(int)或None。

  • ValueError - dim 取值不在 \([-input.ndim, input.ndim)\) 范围。

支持平台:

Ascend

样例:

>>> from mindspore import Tensor, mint
>>> import numpy as np
>>> import mindspore
>>> # case 1: each value specified.
>>> x = Tensor(np.array([[0, 1, 0], [1, 1, 0]]).astype(np.float32))
>>> nonzero_num = mint.count_nonzero(input=x, dim=[0, 1])
>>> print(nonzero_num)
[[3]]
>>> # case 2: all value is default.
>>> nonzero_num = mint.count_nonzero(input=x)
>>> print(nonzero_num)
3
>>> # case 3: dim value was specified 0.
>>> nonzero_num = mint.count_nonzero(input=x, dim=[0,])
>>> print(nonzero_num)
[1 2 0]
>>> # case 4: dim value was specified 1.
>>> nonzero_num = mint.count_nonzero(input=x, dim=[1,])
>>> print(nonzero_num)
[1 2]