According to the documentation

Returns the indices that would sort an array.

  • 2 is the index of 0.0.
  • 3 is the index of 0.1.
  • 1 is the index of 1.41.
  • 0 is the index of 1.48.
Answer from falsetru on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › python › numpy-argsort-in-python
numpy.argsort() in Python - GeeksforGeeks
July 11, 2025 - numpy.argsort() is a function in NumPy that returns the indices that would sort an array. In other words, it gives you the indices that you would use to reorder the elements in an array to be in sorted order.
🌐
Vultr Docs
docs.vultr.com › python › third party › numpy › argsort()
Python Numpy argsort() - Sort Array Indices
November 11, 2024 - Use the argsort() function to get sorted indices. ... import numpy as np data = np.array([10, 1, 5, 3, 8, 6]) sorted_indices = data.argsort() print(sorted_indices)
Top answer
1 of 10
175

According to the documentation

Returns the indices that would sort an array.

  • 2 is the index of 0.0.
  • 3 is the index of 0.1.
  • 1 is the index of 1.41.
  • 0 is the index of 1.48.
2 of 10
51

[2, 3, 1, 0] indicates that the smallest element is at index 2, the next smallest at index 3, then index 1, then index 0.

There are a number of ways to get the result you are looking for:

import numpy as np
import scipy.stats as stats

def using_indexed_assignment(x):
    "https://stackoverflow.com/a/5284703/190597 (Sven Marnach)"
    result = np.empty(len(x), dtype=int)
    temp = x.argsort()
    result[temp] = np.arange(len(x))
    return result

def using_rankdata(x):
    return stats.rankdata(x)-1

def using_argsort_twice(x):
    "https://stackoverflow.com/a/6266510/190597 (k.rooijers)"
    return np.argsort(np.argsort(x))

def using_digitize(x):
    unique_vals, index = np.unique(x, return_inverse=True)
    return np.digitize(x, bins=unique_vals) - 1

For example,

In [72]: x = np.array([1.48,1.41,0.0,0.1])

In [73]: using_indexed_assignment(x)
Out[73]: array([3, 2, 0, 1])

This checks that they all produce the same result:

x = np.random.random(10**5)
expected = using_indexed_assignment(x)
for func in (using_argsort_twice, using_digitize, using_rankdata):
    assert np.allclose(expected, func(x))

These IPython %timeit benchmarks suggests for large arrays using_indexed_assignment is the fastest:

In [50]: x = np.random.random(10**5)
In [66]: %timeit using_indexed_assignment(x)
100 loops, best of 3: 9.32 ms per loop

In [70]: %timeit using_rankdata(x)
100 loops, best of 3: 10.6 ms per loop

In [56]: %timeit using_argsort_twice(x)
100 loops, best of 3: 16.2 ms per loop

In [59]: %timeit using_digitize(x)
10 loops, best of 3: 27 ms per loop

For small arrays, using_argsort_twice may be faster:

In [78]: x = np.random.random(10**2)

In [81]: %timeit using_argsort_twice(x)
100000 loops, best of 3: 3.45 µs per loop

In [79]: %timeit using_indexed_assignment(x)
100000 loops, best of 3: 4.78 µs per loop

In [80]: %timeit using_rankdata(x)
100000 loops, best of 3: 19 µs per loop

In [82]: %timeit using_digitize(x)
10000 loops, best of 3: 26.2 µs per loop

Note also that stats.rankdata gives you more control over how to handle elements of equal value.

🌐
Programiz
programiz.com › python-programming › numpy › methods › argsort
NumPy argsort()
The argsort() method in NumPy sorts the array elements in ascending order and returns indices of the sorted elements. The argsort() method in NumPy sorts the array elements in ascending order and returns indices of the sorted elements.
Find elsewhere
🌐
Spark By {Examples}
sparkbyexamples.com › home › python › how to use numpy argsort() in python
How to Use NumPy Argsort() in Python - Spark By {Examples}
March 27, 2024 - NumPy argsort() function in Python is used to calculate an indirect sort along the specified axis using the algorithm specified by the kind keyword. It
🌐
EDUCBA
educba.com › home › software development › software development tutorials › numpy tutorial › numpy.argsort()
Numpy.argsort() | Sorting the Algorithms for NumPy with Example
March 28, 2023 - argsort function is a pre-built function present in the Numpy which works in a way that it returns the indices that would be responsible for sorting an array. The array which is returned is arranged in a specified order.
Address: Unit no. 202, Jay Antariksh Bldg, Makwana Road, Marol, Andheri (East),, 400059, Mumbai
🌐
Sharp Sight
sharpsight.ai › blog › numpy-argsort
How to Use Numpy Argsort in Python - Sharp Sight
April 10, 2022 - Additionally, the argsort function will accept my different data structures as inputs. Frequently, we’ll use a Numpy array as the input. But np.argsort will also accept Python lists and array-like objects.
🌐
Javatpoint
javatpoint.com › numpy-argsort
numpy.argsort() in Python - Javatpoint
Syntax numpy.loadtxt(fname, dtype=<type... ... We provides tutorials and interview questions of all technology like java tutorial, android, java frameworks ... Java Data Structures C Programming C++ Tutorial C# Tutorial PHP Tutorial HTML Tutorial JavaScript Tutorial jQuery Tutorial Spring Tutorial · Tcs Intuit Wipro Adobe Infosys Amazon Accenture Cognizant Capgemini Microsoft · C R C++ Php Java Html Swift Python JavaScript TypeScript
🌐
Educative
educative.io › answers › what-is-argsort-in-numpy
What is argsort() in NumPy?
In Python, the NumPy library has a function called argsort(), which computes the indirect sorting of an array.
🌐
Omz Software
omz-software.com › pythonista › numpy › reference › generated › numpy.argsort.html
numpy.argsort — NumPy v1.8 Manual
As of NumPy 1.4.0 argsort works with real/complex arrays containing nan values. The enhanced sort order is documented in sort. ... >>> x = np.array([(1, 0), (0, 1)], dtype=[('x', '<i4'), ('y', '<i4')]) >>> x array([(1, 0), (0, 1)], dtype=[('x', '<i4'), ('y', '<i4')]) ... © Copyright 2008-2009, The Scipy community. The Python Software Foundation is a non-profit corporation.
🌐
TutorialsPoint
tutorialspoint.com › numpy › numpy_argsort_function.htm
Numpy argsort() Function
The numpy.argsort() function returns an array of indices of the same shape as a that index data along the given axis in sorted order.
🌐
GeeksforGeeks
geeksforgeeks.org › numpy › how-to-use-numpy-argsort-in-descending-order-in-python
How to use numpy.argsort in Descending order in Python - GeeksforGeeks
July 23, 2025 - The numpy.argsort() function is used to conduct an indirect sort along the provided axis using the kind keyword-specified algorithm. It returns an array of indices of the same shape as arr, which would be used to sort the array.
🌐
NumPy
numpy.org › doc › 2.2 › reference › generated › numpy.ma.argsort.html
numpy.ma.argsort — NumPy v2.2 Manual
ma.argsort(a, axis=<no value>, kind=None, order=None, endwith=True, fill_value=None, *, stable=None)[source]#