numpy.argsort(a,axis=-1,kind='quicksort',order=None)[source]¶Returns the indices that would sort an array.
Perform an indirect sort along the given axis using the algorithm specifiedby thekind keyword. It returns an array of indices of the same shape asa that index data along the given axis in sorted order.
| Parameters: | a : array_like
axis : int or None, optional
kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, optional
order : str or list of str, optional
|
|---|---|
| Returns: | index_array : ndarray, int
|
See also
sortlexsortndarray.sortargpartitionNotes
Seesort for notes on the different sorting algorithms.
As of NumPy 1.4.0argsort works with real/complex arrays containingnan values. The enhanced sort order is documented insort.
Examples
One dimensional array:
>>>x=np.array([3,1,2])>>>np.argsort(x)array([1, 2, 0])
Two-dimensional array:
>>>x=np.array([[0,3],[2,2]])>>>xarray([[0, 3], [2, 2]])
>>>np.argsort(x,axis=0)array([[0, 1], [1, 0]])
>>>np.argsort(x,axis=1)array([[0, 1], [0, 1]])
Sorting with keys:
>>>x=np.array([(1,0),(0,1)],dtype=[('x','<i4'),('y','<i4')])>>>xarray([(1, 0), (0, 1)], dtype=[('x', '<i4'), ('y', '<i4')])
>>>np.argsort(x,order=('x','y'))array([1, 0])
>>>np.argsort(x,order=('y','x'))array([0, 1])