Wie zum invertieren einer permutation array in numpy

Gegeben, ein selbst-Indizierung (nicht sicher, ob dies der richtige Ausdruck ist) numpy-array, zum Beispiel:

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

Dieser stellt dieser permutation (=> ist ein Pfeil):

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

Ich versuche, ein array repräsentieren die inverse transformation ohne es "manuell" in python, das ist, ich will einen Reine numpy Lösung. Das Ergebnis möchte ich in dem oben genannten Fall ist:

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

Entspricht

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

Es scheint so einfach, aber ich kann einfach nicht denken, wie es zu tun. Ich habe versucht zu googeln, aber habe nicht gefunden was relevant ist.

  • Was zurückgegeben werden soll, für a = np.array([1, 1, 1, 1])?
  • Sie können davon ausgehen, dass solche Fälle nicht angezeigt.
Schreibe einen Kommentar