Obtendo índices de ordem crescente da lista
Eu sei que essa pergunta foi feita cem vezes, mas a resposta sempre parece ser "use argsort de numpy". Mas ou estou interpretando mal o que a maioria das pessoas está perguntando ou as respostas não estão corretas para a pergunta. Seja qual for o caso, desejo obter índices da ordem crescente de uma lista. O fraseado é confuso, por exemplo, dada uma lista[4, 2, 1, 3]
Espero receber uma lista de volta[3, 1, 0, 2]
. O menor item é1
, para obter o índice0
, o maior deles é4
para obter o índice3
. Parece-me queargsort
é frequentemente sugerido, mas simplesmente não parece fazer iss
from numpy import argsort
l = [4, 2, 1, 3]
print(argsort(l))
# [2, 1, 3, 0]
# Expected [3, 1, 0, 2]
Claramente argsort está fazendo outra coisa, então o que está realmente fazendo e como é semelhante ao comportamento esperado, de modo que é sugerido com tanta frequência (incorretamente)? E, mais importante, como posso obter a saída desejada?