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()
.