Open In App

Numpy count_nonzero method - Python

Last Updated : 20 Sep, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

When working with arrays, sometimes you need to quickly count how many elements are not equal to zero. NumPy makes this super easy with the numpy.count_nonzero() function.

This is useful when:

  • You want to count valid entries in datasets.
  • You’re filtering out missing (zero) values.
  • You need quick statistics on arrays.

Example: Let’s start with the simplest example to understand how it works.

Python
import numpy as np
arr = [0, 1, 0, 2, 3]
result = np.count_nonzero(arr)
print(result)

Output
3

Explanation: array is [0, 1, 0, 2, 3] and non-zero elements are 1, 2, 3 -> total 3 values.

Syntax

numpy.count_nonzero(arr, axis=None)

Parameters:

  • arr: array_like - Input array.
  • axis: int or tuple, optional - None counts over the whole array; int/tuple counts along given axis (row/column).

Return Value: int (if axis=None) or array of ints (if axis is given). Represents the count of non-zero elements.

Examples

Example 1: In this example, we count all non-zero elements in a 2D array.

Python
import numpy as np
arr = [[0, 1, 2, 3, 0], 
       [0, 5, 6, 0, 7]]
result = np.count_nonzero(arr)
print(result)

Output
6

Explanation: There are 6 values that are not zero.

Example 2: Here, we count non-zero elements column-wise using axis=0.

Python
import numpy as np
arr = [[0, 1, 2, 3, 4], 
       [5, 0, 6, 0, 7]]
result = np.count_nonzero(arr, axis=0)
print(result)

Output
[1 1 2 1 2]

Explanation:

  • Column 0 -> 1 non-zero (5) and Column 1 -> 1 non-zero (1)
  • Column 2 -> 2 non-zeros (2, 6), Column 3 -> 1 non-zero (3) and Column 4 -> 2 non-zeros (4, 7)

Example 3: This example counts non-zero elements row-wise using axis=1.

Python
import numpy as np
arr = [[0, 0, 0, 3, 4], 
       [5, 6, 0, 0, 7]]
result = np.count_nonzero(arr, axis=1)
print(result)

Output
[2 3]

Explanation: Row 0 -> 2 non-zeros (3, 4) and Row 1 -> 3 non-zeros (5, 6, 7)


Article Tags :

Explore