Integer Array mit index-array transformieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

Hallo Leute,
ich hab einen integer-array (a), dessen Inhalt Indizes darstelen, vorliegen. Diesen möchte ich nun mittels eines master-index-arrays (idx) transformieren.
Die brute-force-methode sieht wie folgt aus:

Code: Alles auswählen

import numpy as np
idx = np.array([10,23,452,12,25]) 
a   = np.array( [[0,2,3],
                 [2,1,4]],dtype=int )
for i in range(len(a)):
    for j in range(len(a[i])):
        a[i][j] = idx[a[i][j]]

Code: Alles auswählen

print a 
[[ 10 452  12]
 [452  23  25]]
Gibt es dafür eine schnellere elegantere "python-like" Variante?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ja:

Code: Alles auswählen

idx[a]
Das Leben ist wie ein Tennisball.
schneitzmaster
User
Beiträge: 94
Registriert: Freitag 26. Oktober 2012, 15:35
Wohnort: Hamburg

super vielen dank!
Antworten