Reference Materials
Certification Courses
Created with over a decade of experience and thousands of feedback.
NumPy nonzero()
In this tutorial, you will learn about the numpy.nonzero() method with the help of examples.
The NumPy nonzero() method finds the indices of array elements that are not zero.
Example
import numpy as np
originalArray = np.array([1, 0, 0, 4, -5])
# return the indices of elements that are not zero
result = np.nonzero(originalArray)
print(result)
# Output: (array([0, 3, 4]),)
nonzero() Syntax
The syntax of nonzero() is:
numpy.nonzero(array)
nonzero() Argument
The nonzero() method takes one argument:
array- an array whose non-zero indices are to be found
nonzero() Return Value
The nonzero() method returns a tuple of arrays; one for each dimension of the input array, containing the indices of the non-zero elements in that dimension.
Example 1: numpy.nonzero() With Arrays
import numpy as np
numberArray = np.array([1, 0, 0, 4, -5])
stringArray = np.array(['Apple', 'Ball', '', 'Dog'])
# return indices of non-zero elements in numberArray
numberResult = np.nonzero(numberArray)
# return indices of non-empty elements in stringArray
stringResult = np.nonzero(stringArray)
print('Indices of non-zero elements in numberArray:', numberResult)
print('Indices of non-empty elements in stringArray:', stringResult)
Output
Indices of non-zero elements in numberArray: (array([0, 3, 4]),) Indices of non-empty elements in stringArray: (array([0, 1, 3]),)
Example 2: numpy.nonzero() With 2-D Arrays
import numpy as np
array = np.array([[1, 0, 3],
[2, 0, 0],
[0, 4, 5]])
# return indices of elements that are not zero
result = np.nonzero(array)
print(result)
Output
(array([0, 0, 1, 2, 2]), array([0, 2, 0, 1, 2]))
Here, the output of the code is a tuple containing two arrays.
The first array [0, 0, 1, 2, 2] represents the row indices of the non-zero elements, and the second array [0, 2, 0, 1, 2] represents the corresponding column indices.
- The first non-zero element is 1, which is located at row index 0 and column index 0.
- The second non-zero element is 3, which is located at row index 0 and column index 2, and so on.
Example 3: numpy.nonzero() With Condition
We can also use nonzero() to find the indices of elements that satisfy the given condition.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
# return indices of elements that satisfy the condition
# true if the array element is even
result = np.nonzero(array%2==0)
print(result)
Output
(array([1, 3, 5]),)
Note: To group the indices by the element, rather than dimension, we use argwhere().