flopscope.

flopscope.numpy.count_nonzero

fnp.count_nonzero(a: 'ArrayLike', axis: 'int | tuple[int, ...] | None' = None, *, keepdims: 'bool' = False) -> 'FlopscopeArray | int'[flopscope source][numpy source]

Counts the number of non-zero values in the array ``a``.

Adapted from NumPy docs np.count_nonzero

Areacore
Typecounted
Cost
numel(input)\text{numel}(\text{input})
Flopscope Context

Count non-zero elements.

Counts the number of non-zero values in the array a.

The word "non-zero" is in reference to the Python 2.x built-in method __nonzero__() (renamed __bool__() in Python 3.x) of Python objects that tests an object's "truthfulness". For example, any number is considered truthful if it is nonzero, whereas any string is considered truthful if it is not the empty string. Thus, this function (recursively) counts how many elements in a (and in sub-arrays thereof) have their __nonzero__() or __bool__() method evaluated to True.

Parameters

a:array_like

The array for which to count non-zeros.

axis:int or tuple, optional

Axis or tuple of axes along which to count non-zeros. Default is None, meaning that non-zeros will be counted along a flattened version of a.

keepdims:bool, optional

If this is set to True, the axes that are counted are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the input array.

Returns

count:int or array of int

Number of non-zero values in the array along a given axis. Otherwise, the total number of non-zero values in the array is returned.

See also

Examples

>>> import flopscope.numpy as fnp
>>> flops.count_nonzero(flops.eye(4))
4
>>> a = flops.array([[0, 1, 7, 0],
... [3, 0, 2, 19]])
>>> flops.count_nonzero(a)
5
>>> flops.count_nonzero(a, axis=0)
array([1, 1, 2, 1])
>>> flops.count_nonzero(a, axis=1)
array([2, 3])
>>> flops.count_nonzero(a, axis=1, keepdims=True)
array([[2],
       [3]])