Open In App

How to Get the N-Largest Values of an Array using NumPy

Last Updated : 27 Sep, 2025
Comments
Improve
Suggest changes
2 Likes
Like
Report

The numpy.argsort() function can be used to find the n-largest values in an array. Instead of directly returning the sorted array, argsort() returns the indices that would sort the array. Using these indices with slicing, we can extract the top n largest elements efficiently.

In this example, we extract the 1 largest value from a NumPy array.

Python
import numpy as np

arr = np.array([5, 1, 8, 3])
n = 1

idx = np.argsort(arr)
res = arr[idx][-n:]
print(n, "largest value:", res)

Output
1 largest value: [8]

Explanation:

  • np.argsort(arr) -> returns indices [1, 3, 0, 2]
  • Sorting gives [1, 3, 5, 8]
  • Last element -> [8]

Syntax

numpy.argsort(arr, axis=-1, kind='quicksort', order=None)

Parameters:

  • arr: Input array.
  • axis: Axis along which to sort. Default is -1 (last axis).
  • kind: Sorting algorithm ('quicksort', 'mergesort', 'heapsort', 'stable').
  • order: When sorting structured arrays, specifies field(s) to sort by.

Return Value:

  • Returns an array of indices that would sort arr.
  • Using these indices, we can reconstruct the sorted array or extract top n elements.

Examples

Example 1: This example extracts the 2 largest values from a NumPy array.

Python
import numpy as np

arr = np.array([2, 0, 1, 5, 4, 1, 9])
print("Array:", arr)

idx = np.argsort(arr)
sorted_arr = arr[idx]

n = 2
res = sorted_arr[-n:]
print(n, "largest values:", res)

Output
Array: [2 0 1 5 4 1 9]
2 largest values: [5 9]

Explanation:

  • Sorted array -> [0, 1, 1, 2, 4, 5, 9].
  • Last 2 elements -> [5, 9].

Example 2: This example extracts the top 3 values from a NumPy array.

Python
import numpy as np

arr = np.array([2, 0, 1, 5, 4, 1, 9])
print("Array:", arr)

idx = np.argsort(arr)
sorted_arr = arr[idx]

n = 3
res = sorted_arr[-n:]
print(n, "largest values:", res)

Output
Array: [2 0 1 5 4 1 9]
3 largest values: [4 5 9]

Explanation:

  • Sorted array -> [0, 1, 1, 2, 4, 5, 9].
  • Last 3 elements -> [4, 5, 9].

Example 3: This example shows how to flatten a 2D array and find the 2 largest values.

Python
import numpy as np

arr = np.array([[3, 7, 1], [9, 2, 6]])
print("2D Array:\n", arr)

idx = np.argsort(arr, axis=None)
sorted_arr = arr.flatten()[idx]

n = 2
res = sorted_arr[-n:]
print(n, "largest values:", res)

Output
2D Array:
 [[3 7 1]
 [9 2 6]]
2 largest values: [7 9]

Explanation:

  • Flattened array -> [3, 7, 1, 9, 2, 6].
  • Sorted array -> [1, 2, 3, 6, 7, 9].
  • Last 2 values -> [7, 9].

Explore