2016-06-05 8 views
0

Ich habe eine 3D-Array: 25x30000x139 ich es will 2D sein wie folgt aus:3D zu 2D-Array in 1 Codezeile

(SSSSSSS, 25) --SSSSSS is a number-- 

Dies ist mein Code:

y = x3D.swapaxes(0,2)    
    z = y.swapaxes(1,2)    
    x2D = np.reshape(z.shape[1],-1) 

Dies sind die Ausgänge:

(25, 30000, 139) 
    (139, 25, 30000) 
    (1,) 

Was mache ich falsch? Warum bekomme ich das Array (SSSSSS, 25) nicht? Gibt es eine Möglichkeit, es in 1 Zeile zu tun? Ich habe versucht:

x2D = np.swapaxes((np.swapaxes(x3D,0,2),1,2).reshape(x3D.shape[1],-1) 

Antwort

0

Der Code:

np.swapaxes(x3D.swapaxes(0, 1).reshape(x3D.shape[0], -1), 0,1) 

Von 3D: (25, 30000, 139)

Um 2D: (4.170.000, 25)

in 1 Zeile !!!! :)