## How to find the index of value in Numpy array using numpy.where() in Python ?

**Python find index of value in numpy array: **NumPy or Numerical Python which is a general purpose array processing package and it is used for working with arrays. In python there `numpy.where( )`

function which is used to select elements from a numpy array, based on a condition and if the condition is satisfied we perform some operations.

`Syntax : numpy.where(condition[ , x, y ])`

Where

- condition is a conditional expression which returns the Numpy array of bool
- x,y are two optional arrays i.e either both are passed or not passed

In this article we will discuss about how to get the index of an element in a Numpy array (both 1D & 2D) using this function. So, let’s explore the concept well.

- Python Programming – NumPy
- Python: Convert a 1D array to a 2D Numpy array or Matrix
- Count occurrences of a value in NumPy array in Python | numpy.count() in Python

### 1. Find index of a value in 1D Numpy array :

Suppose `array_one`

is an 1D Numpy array, So it will look like

array_one = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50, 30, 60, 65, 70, 75, 80, 85, 30, 95])

Now, let’s find the index number of 30 in this Numpy array.

Program : import numpy as np # numpy array created with a list of numbers array_one = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50, 30, 60, 65, 70, 75, 80, 85, 30, 95]) # Get the index of elements with value 30 output = np.where(array_one == 30) #printing the indices where the element 30 is present print('Tuple of arrays returned : ', output) print("Elements with value 30 exists at following indices", output[0], sep='\n')

```
Output :
Tuple of arrays returned : (array([4, 9, 16]), )
Elements with value 30 exists at following indices
[4 9 16]
```

As result is a tuple of arrays which contains the indices where value 30 exists in array array_one i.e. so it returned

`(array([4, 9, 16]), )`

And as a flat 1D array it returned

`[4 9 16]`

And if the element is not present in the Numpy array then returned array of indices will be empty. So let’s check that with an example

Program : import numpy as np # numpy array created with a list of numbers array_one = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50, 30, 60, 65, 70, 75, 80, 85, 30, 95]) # Get the index of elements with value 100 output = np.where(array_one == 100) print('Tuple of arrays returned : ', output) #printing the indices where the element 100 is present #As 100 is not present in Numpy array i.e array_one so returned array with indices is empty print("Elements with value 30 exists at following indices", output[0], sep='\n')

```
Output :
Tuple of arrays returned : (array([ ]), )
Elements with value 30 exists at following indices
[ ]
```

### 2. Find index of a value in 2D Numpy array :

Suppose `array_two`

is an 2D Numpy array, So it will look like

array_two = np.array([ [10, 15, 20], [25, 30, 35], [40, 45, 50], [30, 60, 65], [70, 75, 80], [85, 30, 95] ])

Now, let’s find the index number of 30 in this Numpy array.

Program : import numpy as np # numpy array created with a list of numbers array_two = np.array([ [10, 15, 20], [25, 30, 35], [40, 45, 50], [30, 60, 65], [70, 75, 80], [85, 30, 95] ]) # Get the index of elements with value 30 output = np.where(array_two == 30) #printing the indices where the element 30 is present print('Tuple of arrays returned: ', output) print("Elements with value 30 first exists at index:", output[0][0])

```
Output :
Tuple of arrays returned: (array([1, 3, 5]), array([1, 0, 1]))
Elements with value 30 first exists at index: 1
```

Where,

First array [1, 3, 5] represents ** row indices** where the element 30 is present

And the second array [1, 0, 1] represents * column indices* where the element 30 is present.

**3.** **Get indices of elements based on multiple conditions in Numpy :**

**Example : 1**

Get the indices of elements with value less than 20 and greater than 10.

Program : import numpy as np # numpy array created with a list of numbers example_array = np.array([11, 6, 13, 8, 15, 16, 7, 15, 1, 2, 14, 19, 4, 20]) # Get the index of elements of value less than 20 and greater than 10 output = np.where((example_array > 10) & (example_array < 20)) print("Elements which are less than 20 and greater than 10 exists at indices",output, sep='\n')

Output : Elements which are less than 20 and greater than 10 exists at indices (array([ 0, 2, 4, 5, 7, 10, 11]),)

**Example : 2**

Get the first index of an element in numpy array.

Program : import numpy as np # numpy array created with a list of numbers example_array = np.array([15, 6, 13, 8, 15, 16, 7, 15, 1, 2, 14, 19, 4, 20]) # Get the index of elements with value less than 20 and greater than 10 output = np.where(example_array == 15) if len(output) > 0 and len(output[0]) > 0: print('First Index of element with value 15 is ', output[0][0])

Output : First Index of element with value 15 is 0

**Example : 3**

Get the indices of the elements which is less than equal to 2

Program : import numpy as np arr = np.arange(10) #prints the array print(arr) #prints indices of the elements which is less than equal to 2 print(arr[arr <= 2])

Output : [0 1 2 3 4 5 6 7 8 9] [0 1 2]