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–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.argsort.html