43 votes

Obtenir les indices originaux d'un tableau Numpy trié

J'ai un tableau de distances a = np.array([20.5 ,5.3 ,60.7 ,3.0 ], 'double') et j'ai besoin des indices du tableau trié (par exemple [3, 1, 0, 2] pour a.sort() ). Existe-t-il une fonction dans Numpy pour faire cela ?

54voto

Phillip Cloud Points 6685

Oui, il y a le x = numpy.argsort(a) ou x = numpy.ndarray.argsort(a) méthode. Elle fait exactement ce que vous demandez. Vous pouvez également appeler argsort comme une méthode sur un ndarray comme suit : a.argsort() .

Voici un lien vers la documentation : http://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html#numpy.argsort

9voto

Ollie Glass Points 4362

Voici un exemple, pour référence et commodité :

# create an array
a = np.array([5,2,3])

# np.sort - returns the array, sorted
np.sort(a)
>>> array([2, 3, 5])

# argsort - returns the original indexes of the sorted array
np.argsort(a)
>>> array([1, 2, 0])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X