How to check whether the element of a given NumPy array is non-zero?

NumPy provides several methods to check whether elements in an array are non-zero. Each approach serves different purposes: checking if all elements are non-zero, finding indices of non-zero elements, or counting non-zero elements.

Using np.all() for Boolean Check

The np.all() function checks if all elements in an array are non-zero (truthy). It returns True if all elements are non-zero, False otherwise ?

import numpy as np

arr = np.array([2, 5, 8, 11, 14, 17])
print("Original array:", arr)

if np.all(arr):
    print("All elements are non-zero")
else:
    print("Array contains zero elements")
Original array: [ 2  5  8 11 14 17]
All elements are non-zero

Example with Zero Elements

import numpy as np

arr = np.array([2, 0, 8, 11, 0, 17])
print("Original array:", arr)

if np.all(arr):
    print("All elements are non-zero")
else:
    print("Array contains zero elements")
Original array: [ 2  0  8 11  0 17]
Array contains zero elements

Using np.nonzero() Function

The np.nonzero() function returns indices of non-zero elements. It's useful when you need to locate where non-zero values occur ?

import numpy as np

arr = np.array([0, 2, 4, 0, 8, 10])
print("Original array:", arr)

indices = np.nonzero(arr)
print("Indices of non-zero elements:", indices[0])
print("Non-zero values:", arr[indices])
Original array: [ 0  2  4  0  8 10]
Indices of non-zero elements: [1 2 4 5]
Non-zero values: [ 2  4  8 10]

2D Array Example

import numpy as np

arr = np.array([[1, 0, 3], [0, 5, 6], [7, 8, 0]])
print("Original 2D array:")
print(arr)

indices = np.nonzero(arr)
print("Row indices:", indices[0])
print("Column indices:", indices[1])
Original 2D array:
[[1 0 3]
 [0 5 6]
 [7 8 0]]
Row indices: [0 0 1 1 2 2]
Column indices: [0 2 1 2 0 1]

Using np.where() Function

The np.where() function with a condition provides more flexibility for finding elements based on specific criteria ?

import numpy as np

arr = np.array([10, 0, 4, 0.5, 0, 3])
print("Original array:", arr)

# Find indices where elements are not equal to 0
non_zero_indices = np.where(arr != 0)
print("Non-zero indices:", non_zero_indices[0])

# Find indices where elements are equal to 0
zero_indices = np.where(arr == 0)
print("Zero indices:", zero_indices[0])
Original array: [10.   0.   4.   0.5  0.   3. ]
Non-zero indices: [0 2 3 5]
Zero indices: [1 4]

Using np.count_nonzero() Function

The np.count_nonzero() function returns the count of non-zero elements in an array ?

import numpy as np

arr = np.array([10, 302, 4, 0, 4, 3, 0])
print("Original array:", arr)

non_zero_count = np.count_nonzero(arr)
total_elements = len(arr)

print(f"Non-zero elements: {non_zero_count}")
print(f"Zero elements: {total_elements - non_zero_count}")
print(f"Total elements: {total_elements}")
Original array: [ 10 302   4   0   4   3   0]
Non-zero elements: 5
Zero elements: 2
Total elements: 7

Comparison

Method Purpose Returns
np.all() Check if all elements are non-zero Boolean
np.nonzero() Get indices of non-zero elements Tuple of arrays
np.where() Conditional element selection Tuple of arrays
np.count_nonzero() Count non-zero elements Integer

Conclusion

Use np.all() to check if all elements are non-zero, np.nonzero() or np.where() to find indices of non-zero elements, and np.count_nonzero() to count them. Choose based on whether you need boolean results, indices, or counts.

Updated on: 2026-03-27T11:37:27+05:30

361 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements