Reference Materials
Certification Courses
Created with over a decade of experience and thousands of feedback.
NumPy argwhere()
In this tutorial, you will learn about the numpy.argwhere() method with the help of examples.
The NumPy argwhere() method finds indices of array elements that are not zero as a 2D array.
Example
import numpy as np
originalArray = np.array([1, 0, 0, 4, -5])
# return the indices of elements that are not zero as a 2D array
result = np.argwhere(originalArray )
print(result)
'''
Output:
[[0]
[3]
[4]]
'''
argwhere() Syntax
The syntax of argwhere() is:
numpy.argwhere(array)
argwhere() Argument
The argwhere() method takes one argument:
array- an array whose non-zero indices are to be found
argwhere() Return Value
The argwhere() method returns indices of elements that are non-zero as a 2D array.
Example 1: numpy.argwhere() 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 as a 2D array
numberResult = np.argwhere(numberArray)
# return indices of non-empty elements in stringArray as a 2D array
stringResult = np.argwhere(stringArray)
print('Array of non-empty indices in numberArray:\n', numberResult)
print('\nArray of non-empty indices in stringArray:\n', stringResult)
Output
Array of non-empty indices in numberArray: [[0] [3] [4]] Array of non-empty indices in stringArray: [[0] [1] [3]]
Example 2: numpy.argwhere() 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.argwhere(array)
print(result)
Output
[[0 0] [0 2] [1 0] [2 1] [2 2]]
Here, the output represents the positions of non-zero elements in the row-column format.
The first non-zero element is 1, which is in index [0, 0] in row-column format. Similarly, the second non-zero element is 3, which is in index [0, 2] in row-column format, and so on.
Example 3: numpy.argwhere() With Condition
We can also use argwhere() to find the indices of elements that satisfy the given condition.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
# check array elements for odd/even condition
# return true if the array element is even
result = np.argwhere(array%2==0)
print(result)
Output
[[1] [3] [5]]
Note: To group the indices by the dimension, rather than element, we use nonzero().