mindspore.Tensor.count_nonzero

查看源文件
mindspore.Tensor.count_nonzero(dim=None)

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

警告

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

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

返回:

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

异常:
  • TypeError - dim 类型不是int、tuple(int)、list(int)或None。

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

支持平台:

Ascend

样例:

>>> from mindspore import Tensor
>>> 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 = x.count_nonzero(dim=[0, 1])
>>> print(nonzero_num)
[[3]]
>>> # case 2: all value is default.
>>> nonzero_num = x.count_nonzero()
>>> print(nonzero_num)
3
>>> # case 3: dim value was specified 0.
>>> nonzero_num = x.count_nonzero(dim=[0,])
>>> print(nonzero_num)
[1 2 0]
>>> # case 4: dim value was specified 1.
>>> nonzero_num = x.count_nonzero(dim=[1,])
>>> print(nonzero_num)
[1 2]
mindspore.Tensor.count_nonzero(axis=(), keep_dims=False, dtype=None)

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

参数:
  • axis (Union[int, tuple(int), list(int)],可选) - 要沿其计算非零值数量的维度。默认值: () ,计算所有非零元素的个数。

  • keep_dims (bool, 可选) - 是否保留 axis 指定的维度。如果为 True ,保留对应维度size为1,如果为 False ,不保留对应维度。默认值: False

  • dtype (Union[Number, mindspore.bool_],可选) - 输出Tensor的数据类型。默认值: None

返回:

Tensor, axis 指定的轴上非零元素数量。数据类型由 dtype 指定。

异常:
  • TypeError - axis 不是int、tuple或者list。

  • ValueError - 如果 axis 中的任何值不在 \([-self.ndim, self.ndim)\) 范围内。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import Tensor
>>> 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 = x.count_nonzero(x=x, axis=[0, 1], keep_dims=True, dtype=mindspore.int32)
>>> print(nonzero_num)
[[3]]
>>> # case 2: all value is default.
>>> nonzero_num = x.count_nonzero()
>>> print(nonzero_num)
3
>>> # case 3: axis value was specified 0.
>>> nonzero_num = x.count_nonzero(axis=[0,])
>>> print(nonzero_num)
[1 2 0]
>>> # case 4: axis value was specified 1.
>>> nonzero_num = x.count_nonzero(axis=[1,])
>>> print(nonzero_num)
[1 2]
>>> # case 5: keep_dims value was specified.
>>> nonzero_num = x.count_nonzero(keep_dims=True)
>>> print(nonzero_num)
[[3]]
>>> # case 6: keep_dims and axis value was specified.
>>> nonzero_num = x.count_nonzero(axis=[0,], keep_dims=True)
>>> print(nonzero_num)
[[1 2 0]]