2016-08-05 8 views
0

eine in Scheiben geschnitten numpy Array wie folgt gegeben:un-Slicing numpy Arrays

b = [a[..., i] for i in a.shape[-1]] 

Was ist die einfachste Art, wie ich a von b neu erstellen können?

Etwas wie:

for i in range(a.shape[-1]): 
    c[..., i] = b[i] 
+0

statt mit 'for' durch alle Spalten laufen, könnte man auch verwenden nur' b = a [...,:] '. –

+1

Meinst du 'für i in Reichweite (a.shape [-1])'? – Praveen

Antwort

1

Statt deren Liste Verständnis, sollen Sie Ihre ursprüngliche Operation

gewesen
b = numpy.rollaxis(a, axis=-1) 

, die anstelle einer Liste von Arrays, die eine Ansicht von a als neuer Array erzeugt.

Der umgekehrte Vorgang ist

c = numpy.rollaxis(b, axis=0, start=b.ndim)