天天看點

python numpy argsort

argsort函數是Numpy子產品中的函數:

>>> import numpy
>>> help(numpy.argsort)
Help on function argsort in module numpy.core.fromnumeric:


argsort(a, axis=-, kind='quicksort', order=None)
Returns the indices that would sort an array.

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
`a` that index data along the given axis in sorted order.
           
  • 從中可以看出argsort函數傳回的是數組值從小到大的索引值

Examples:

One dimensional array:一維數組

>>> x = np.array([, , ])
>>> np.argsort(x)
array([, , ])
           

Two-dimensional array:二維數組

>>> x = np.array([[, ], [, ]])
>>> x
array([[, ],
[, ]])

>>> np.argsort(x, axis=) #按列排序
array([[, ],
[, ]])

>>> np.argsort(x, axis=) #按行排序
array([[, ],
[, ]])
           

Examples:

>>> x = np.array([, , ])
>>> np.argsort(x) #按升序排列
array([, , ])
>>> np.argsort(-x) #按降序排列
array([, , ])

>>> x[np.argsort(x)] #通過索引值排序後的數組
array([, , ])
>>> x[np.argsort(-x)]
array([, , ])
           

另一種方式實作按降序排序:

>>> a = x[np.argsort(x)]
>>> a
array([, , ])
>>> a[::-]
array([, , ])