2016-10-20 3 views
0

Angenommen, ich habe einen 3D-Numpy Array:Sie sich von einer Dimension zu befreien, indem sie in einer anderen Dimension verketten

a = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]) 

Nun würde Ich mag die Dimension, um loszuwerden, 0, indem Sie die Elemente entlang aktueller Dimension verketten 1 (= neue Dimension 0). Also würde ich mit dem folgende Array am Ende:

[[0, 1], [2, 3], [4, 5], [6, 7]] 

(Ich könnte auch entlang einer anderen Dimension dies tun will.)

Im Grunde ist es keine große Sache, es mit reshape zu tun, aber es erfordert etwas manuelle Größenberechnung. Gibt es eine Komfortfunktion, um es direkt zu tun?

+1

Ich glaube, ich verstehe dich falsch, aber 'array (kette (* l))' funktioniert für das Beispiel, das du angegeben hast –

+0

@PatrickHaugh: Die Frage bezieht sich auf Numpy ndarrays. Ich habe die Frage bearbeitet, um es ein bisschen auffälliger zu machen ;-) – Michael

Antwort

1

Ein Ansatz wäre mit np.vstack sein, da es vertikal stapelt (zeilenweise) -

np.vstack(a) 

Auch np.concatenate funktioniert auch als standardmäßig es entlang der ersten Achse verkettet -

np.concatenate(a) 

Angabe der Umformung basierend auch auf Vollständigkeit -

a.reshape(-1,a.shape[-1]) 
+1

Die Umformung wird eine Ansicht sein; die Verkettung einer Kopie. – hpaulj

Verwandte Themen