numpy.argsort
-
numpy.argsort(a, axis=-1, kind='quicksort', order=None)[source] -
Возвращает индексы, которые бы отсортировали массив.
Выполняет косвенную сортировку по заданной оси, используя алгоритм, указанный параметром
kind. Возвращает массив индексов такой же формы, что иa, который индексирует данные по заданной оси в отсортированном порядке.Параметры: a : array_like
Массив для сортировки.
axis : int или None, необязательно
Ось, по которой нужно сортировать. По умолчанию -1 (последняя ось). Если None, используется уплощеный массив.
kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, необязательно
Алгоритм сортировки.
order : str или список str, необязательно
Когда
aявляется массивом с определёнными полями, этот параметр указывает, какие поля сравнивать в первую, вторую и т.д. очередь. Одно поле может быть задано как строка, и не все поля требуются, но незаданные поля всё равно будут использоваться в порядке их появления в dtype, чтобы разрешать ничьи.Возвращает: index_array : ndarray, int
Массив индексов, которые сортируют
aпо заданной оси. Еслиaодномерный,a[index_array]даёт отсортированныйa.См. также
sort- Описание используемых алгоритмов сортировки.
lexsort- Непосредственная стабильная сортировка с несколькими ключами.
ndarray.sort- Сортировка на месте.
argpartition- Непосредственная частичная сортировка.
Примечания
См.
sortдля заметок по различным алгоритмам сортировки.Начиная с NumPy 1.4.0
argsortработает с вещественными/комплексными массивами, содержащими значения nan. Улучшенный порядок сортировки документирован вsort.Примеры
Одномерный массив:
>>> x = np.array([3, 1, 2]) >>> np.argsort(x) array([1, 2, 0])
Двумерный массив:
>>> x = np.array([[0, 3], [2, 2]]) >>> x array([[0, 3], [2, 2]])>>> np.argsort(x, axis=0) array([[0, 1], [1, 0]])>>> np.argsort(x, axis=1) array([[0, 1], [0, 1]])Сортировка с ключами:
>>> x = np.array([(1, 0), (0, 1)], dtype=[('x', '<i4'), ('y', '<i4')]) >>> x array([(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])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.argsort.html