Skip to content
Related Articles

Related Articles

How to get the indices of the sorted array using NumPy in Python?

View Discussion
Improve Article
Save Article
  • Last Updated : 05 Sep, 2020
View Discussion
Improve Article
Save Article

We can get the indices of the sorted elements of a given array with the help of argsort() method. This function is used to perform an indirect sort along the given axis using the algorithm specified by the kind keyword. It returns an array of indices of the same shape as arr that that would sort the array.

Syntax:

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

Example 1:

Python3




import numpy as np
  
  
# Original array
array = np.array([10, 52, 62, 16, 16, 54, 453])
print(array)
  
# Indices of the sorted elements of a 
# given array
indices = np.argsort(array)
print(indices)

Output:

[ 10  52  62  16  16  54 453]
[0 3 4 1 5 2 6]

Example 2:

Python3




import numpy as np
  
  
# Original array
array = np.array([1, 2, 3, 4, 5])
print(array)
  
# Indices of the sorted elements of 
# a given array
indices = np.argsort(array)
print(indices)

Output:

[1 2 3 4 5]
[0 1 2 3 4]

Example 3:

Python3




import numpy as np 
  
  
# input 2d array 
in_arr = np.array([[ 2, 0, 1], [ 5, 4, 3]]) 
print ("Input array :\n", in_arr)  
    
# output sorted array indices 
out_arr1 = np.argsort(in_arr, kind ='mergesort', axis = 0
print ("\nOutput sorteded array indices along axis 0:\n", out_arr1) 
  
out_arr2 = np.argsort(in_arr, kind ='heapsort', axis = 1
print ("\nOutput sorteded array indices along axis 1:\n", out_arr2) 

Output:

Input array :
 [[2 0 1]
 [5 4 3]]

Output sorteded array indices along axis 0:
 [[0 0 0]
 [1 1 1]]

Output sorteded array indices along axis 1:
 [[1 2 0]
 [2 1 0]]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!