Как инвертировать массив перестановок в numpy

Учитывая само -индексирование (, не уверен, что это правильный термин )массив numpy, например:

a = np.array([3, 2, 0, 1])

Это представляет эту перестановку(=>это стрела):

0 => 3
1 => 2
2 => 0
3 => 1

Я пытаюсь создать массив, представляющий обратное преобразование, не делая это «вручную» в python, то есть мне нужно чистое решение numpy. Результат, который я хочу в приведенном выше случае,:

array([2, 3, 1, 0])

Что эквивалентно

0 <= 3                0 => 2
1 <= 2       or       1 => 3
2 <= 0                2 => 1
3 <= 1                3 => 0

Это кажется таким простым, но я просто не могу придумать, как это сделать. Я пробовал гуглить, но не нашел ничего подходящего.

25
задан Ali 27 August 2014 в 19:45
поделиться