Seite 1 von 1

Effizienz von Array-Routinen

Verfasst: Dienstag 3. September 2013, 16:42
von mcatis
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

Re: Effizienz von Array-Routinen

Verfasst: Dienstag 3. September 2013, 21:49
von Sirius3
so:

Code: Alles auswählen

x=y[:,range(27),range(27)]

Re: Effizienz von Array-Routinen

Verfasst: Dienstag 3. September 2013, 23:45
von mcatis
Danke dir!