Effizienz von Array-Routinen

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
mcatis
User
Beiträge: 20
Registriert: Donnerstag 29. August 2013, 01:11
Wohnort: Köln

Hallo,

ist es langsam in Python bei Array Operationen immer eine Schleife rumzubasteln?
Ich will von einem 3D-Array ein 2D-Array extrahieren. Es soll alles genommen werden
aus dem 3D-Array, nur die 3. Ebene nicht. Schematisch so: 2d[i,j] = 3d[i,j,j]

So habe ich es realisiert:

Code: Alles auswählen

x = np.empty((180,27))
y = np.empty((180,40,27))

for i in xrange(0, 27):
    x[:160,i] = y[:160,i,i]
Eigentlich wollte ich das mit dem :160 nicht machen. Aber durch Operationen an dem y-Array vorher
hat das y-Array eine Shape von:
y.shape : (160, 27, 27)
x.shape : (180, 27) --> y hat noch 180. Deshalb das :160, sonst meckert er ja.

Geht es mit numpy.take einfacher und schneller?

Grüße
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

so:

Code: Alles auswählen

x=y[:,range(27),range(27)]
mcatis
User
Beiträge: 20
Registriert: Donnerstag 29. August 2013, 01:11
Wohnort: Köln

Danke dir!
Antworten