Я знаю, что этот вопрос задавался сто раз, но всегда кажется, что ответ "использовать аргумент numpy's". Но либо я неверно истолковываю то, что спрашивает большинство людей, либо ответы на вопрос не верны. Как бы то ни было, я хочу получить индексы в порядке возрастания списка. Формулировка вводит в заблуждение, поэтому в качестве примера приведен список [4, 2, 1, 3]
Я ожидаю получить список обратно [3, 1, 0, 2]
. Самый маленький элемент - 1
, поэтому он получает индекс 0
, самый большой - 4
, поэтому он получает индекс 3
. Мне кажется, что часто предлагается argsort
, но, похоже, он этого не делает.
from numpy import argsort
l = [4, 2, 1, 3]
print(argsort(l))
# [2, 1, 3, 0]
# Expected [3, 1, 0, 2]
Очевидно, что argsort делает что-то еще, так что он на самом деле делает и как это похоже на ожидаемое поведение, так что это так часто (ошибочно) предлагается? И, что более важно, как я могу получить желаемый результат?