# NumPy argwhere()

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