In this shot, we will learn how to find the indices of N maximum values in a NumPy array. We do not have any ready-made function that can give us the indices of N maximum values in a NumPy array. However, we can manipulate existing NumPy functions to suffice our needs. In order to get the indices of N maximum values in a NumPy array, we can use the
numpy.argsort() function performs an indirect sort along the given axis.
The syntax of the
argsort() function is as shown below:
numpy.argsort(Numpy_array, axis=None, kind=None, order=None)
numpy.argsort() function accepts the following parameters:
Numpy_array: The source array that needs to be sorted.
Axis: Defines the axis along which the sorting is performed. A flattened array is used by default.
Kind: Defines the sorting algorithm.
Kind takes quick-sort by default.
Order: Specifies which fields to compare first.
numpy.argsort() function returns an array of indices in accordance with the specified axis.
Let’s have a look at the code now.
# Importing the Numpy Package import numpy as np # Numpy Array scores = np.array([100,67,92,87,66,89,76,22]) # Getting indices of N = 3 maximum values x = np.argsort(scores)[::-1][:3] print("Indices:",x) # Getting N maximum values print("Values:",scores[x])
In line 2 we import the
numpy library with alias
In line 5 we create a
numpy array that needs to be sorted.
In line 8 we sort the
numpy array with the
np.argsort() function. The
np.argsort() function sorts the
numpy array in ascending order and returns their indices.
Since the problem statement wants us to find the indices of N maximum numbers, we use
[::-1]to reverse the array. Lastly, we use
[:N]to get the first N values. Here, N = 3 has been taken.
In line 9 we print the required indices.
In line 12 we print the N maximum values to check the sanity of the program.
In this way, we can get the indices of N maximum values from a NumPy array. We can also get the indices of N minimum values by not reversing the array. In that case, we wouldn’t use
[::-1] in line 8.
View all Courses