В документации первая строка гласит «Возвращает индексы, которые будут сортировать массив». Следовательно, если вы хотите, чтобы позиции отсортированных значений у нас были:
x = np.array([3, 1, 2])
np.argsort(x)
>>>array([1, 2, 0])
здесь нам нужны позиции индекса 1, 2 и 3 в х. Часть 3 равна 0, часть 1 равна 1, а позиция 2 равна 2, следовательно array([1, 2, 0])
= sorted_array (1,2,3).
Опять из примечаний: "argsort возвращает массив индексов той же формы, что и данные индекса по заданной оси в отсортированном порядке."
Более интуитивно понятный способ понять, что это значит, - использовать цикл for, где мы перебираем наши возвращенные значения argsort
, а затем индексируем исходный массив со следующими значениями:
x = np.array([3, 1, 2])
srt_positions = np.argsort(x)
for k in srt_positions:
print x[k]
>>> 1, 2, 3