Let’s see the program for how to get the n-largest values of an array using NumPy library. For getting n-largest values from a NumPy array we have to first sort the NumPy array using numpy.argsort() function of NumPy then applying slicing concept with negative indexing.
Syntax: numpy.argsort(arr, axis=-1, kind=’quicksort’, order=None)
Return: [index_array, ndarray] Array of indices that sort arr along the specified axis.If arr is one-dimensional then arr[index_array] returns a sorted arr.
Let’s see an example:
Example 1: Getting the 1st largest value from a NumPy array.
Python3
# import libraryimport numpy as np # create numpy 1d-arrayarr = np.array([2, 0, 1, 5, 4, 1, 9]) print("Given array:", arr) # sort an array in# ascending order # np.argsort() return# array of indices for# sorted arraysorted_index_array = np.argsort(arr) # sorted arraysorted_array = arr[sorted_index_array] print("Sorted array:", sorted_array) # we want 1 largest valuen = 1 # we are using negative# indexing concept # take n largest valuerslt = sorted_array[-n : ] # show the outputprint("{} largest value:".format(n), rslt[0]) |
Output:
Given array: [2 0 1 5 4 1 9] Sorted array: [0 1 1 2 4 5 9] 1 largest value: 9
Example 2: Getting the 3-largest values from a NumPy array.
Python3
# import libraryimport numpy as np # create numpy 1d-arrayarr = np.array([2, 0, 1, 5, 4, 1, 9]) print("Given array:", arr) # sort an array in# ascending order # np.argsort() return# array of indices for# sorted arraysorted_index_array = np.argsort(arr) # sorted arraysorted_array = arr[sorted_index_array] print("Sorted array:", sorted_array) # we want 3 largest valuen = 3 # we are using negative# indexing concept # find n largest valuerslt = sorted_array[-n : ] # show the outputprint("{} largest value:".format(n), rslt) |
Output:
Given array: [2 0 1 5 4 1 9] Sorted array: [0 1 1 2 4 5 9] 3 largest value: [4 5 9]
