How to find the Index of value in Numpy Array ?
In this article, we are going to find the index of the elements present in a Numpy array.
Using where() Method
where() method is used to specify the index of a particular element specified in the condition.
Syntax: numpy.where(condition[, x, y])
Example 1: Get index positions of a given value
Here, we find all the indexes of 3 and the index of the first occurrence of 3, we get an array as output and it shows all the indexes where 3 is present.
Python3
# import numpy package import numpy as np # create an numpy array a = np.array([ 1 , 2 , 3 , 4 , 8 , 6 , 7 , 3 , 9 , 10 ]) # display index value of 3 print ( "All index value of 3 is: " , np.where(a = = 3 )[ 0 ]) print ( "First index value of 3 is: " ,np.where(a = = 3 )[ 0 ][ 0 ]) |
Output:
All index value of 3 is: [2 7] First index value of 3 is: 2
Example 2: Print First Index Position of Several Values
Here, we are printing the index number of all values present in the values array.
Python3
# import numpy package import numpy as np # create an numpy array a = np.array([ 1 , 2 , 3 , 4 , 8 , 6 , 2 , 3 , 9 , 10 ]) values = np.array([ 2 , 3 , 10 ]) # index of first occurrence of each value sorter = np.argsort(a) print ( "index of first occurrence of each value: " , sorter[np.searchsorted(a, values, sorter = sorter)]) |
Output:
index of first occurrence of each value: [1 2 9]
Example 3: Get the index of elements based on multiple conditions
Get the index of elements with a value less than 20 and greater than 12
Python3
# Create a numpy array a = np.array([ 11 , 12 , 13 , 14 , 15 , 16 , 17 , 15 , 11 , 12 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ]) # Get the index of elements with value less # than 20 and greater than 12 print ("Index of elements with value less\ than 20 and greater than 12 are: \n", np.where((a > 12 ) & (a < 20 ))) |
Output:
Index of elements with value less than 20 and greater than 12 are: (array([ 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15], dtype=int64),)
Get the index of elements in the Python loop
Create a NumPy array and iterate over the array to compare the element in the array with the given array. If the element matches print the index.
Python3
import numpy as np # create numpy array elements a = np.array([ 2 , 3 , 4 , 5 , 6 , 45 , 67 , 34 ]) # display element index where value = 45 index_of_element = - 1 for i in range (a.size): if a[i] = = 45 : index_of_element = i break if index_of_element ! = - 1 : print ( "element index : " , index_of_element) else : print ( "The element not present" ) |
Output:
element index : 5
Using ndenumerate() function to find the Index of value
It is usually used to find the first occurrence of the element in the given numpy array.
Python3
import numpy as np def ind(array, item): for idx, val in np.ndenumerate(array): if val = = item: return idx # If no item was found return None, other return types might be a problem due to # numbas type inference. a = np.array([ 11 , 12 , 13 , 14 , 15 , 16 , 17 , 15 , 11 , 12 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ]) print (ind(a, 11 )) |
Output:
(6,)
Using enumerate() function to find the Index of value
Here we are using the enumerate function and then checking the value with the target value.
Python3
import numpy as np a = np.array([ 11 , 12 , 13 , 14 , 15 , 16 , 17 , 15 , 11 , 12 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ]) print ( next (i for i, x in enumerate (a) if x = = 17 )) |
Output:
6
Please Login to comment...