mindspore.ops.count_nonzero

查看源文件
mindspore.ops.count_nonzero(x, axis=(), keep_dims=False, dtype=mstype.int32)[源代码]

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

参数:
  • x (Tensor) - 输入tensor。

  • axis (Union[int, tuple(int), list(int)],可选) - 指定轴。默认 () ,计算所有非零元素的个数。

  • keep_dims (bool, 可选) - 是否保留 axis 指定的维度。默认 False ,不保留对应维度。

  • dtype (Union[Number, mindspore.bool_],可选) - 指定数据类型。默认 mstype.int32

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> # case 1: each value specified.
>>> x = mindspore.tensor([[0, 1, 0], [1, 1, 0]], mindspore.float32)
>>> nonzero_num = mindspore.ops.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 = mindspore.ops.count_nonzero(x=x)
>>> print(nonzero_num)
3
>>> # case 3: axis value was specified 0.
>>> nonzero_num = mindspore.ops.count_nonzero(x=x, axis=[0,])
>>> print(nonzero_num)
[1 2 0]
>>> # case 4: axis value was specified 1.
>>> nonzero_num = mindspore.ops.count_nonzero(x=x, axis=[1,])
>>> print(nonzero_num)
[1 2]
>>> # case 5: keep_dims value was specified.
>>> nonzero_num = mindspore.ops.count_nonzero(x=x,  keep_dims=True)
>>> print(nonzero_num)
[[3]]
>>> # case 6: keep_dims and axis value was specified.
>>> nonzero_num = mindspore.ops.count_nonzero(x=x, axis=[0,], keep_dims=True)
>>> print(nonzero_num)
[[1 2 0]]