Ich versuche einen netten kleinen Trick zu finden, um eine Zeile / Spalte aus einem 2D-Array zu schneiden und ein Array von (col_size x 1)
oder (1 x row_size)
zu erhalten.
Gibt es einen einfacheren Weg als numpy.reshape()
nach jedem Slicen zu benutzen?
Prost, Stephan
Sie können eine neue Achse in einer einzigen Operation in Scheiben schneiden und einfügen. Zum Beispiel, hier ist ein 2D-Array:
%Vor% Um eine einzelne -Spalte auszuschneiden (Rückgabe des Arrays der Form (2, 1)
), schneiden Sie mit None
als dritte Dimension ab:
Um eine einzelne Zeile auszuschneiden (Array der Form (1, 3)
wird zurückgegeben), schneiden Sie mit None
als zweite Dimension ab:
Machen Sie den Index zu einem Slice, einer Liste oder einem Array
%Vor% Aber es ist nichts falsch mit reshape
anders als die Tatsache, dass es Tippen erfordert. Es ist nicht langsam. [None,:]
ist eine nette kurze Hand dafür.
Die Verwendung eines Listenindex ist zwar der kürzeste, aber er erzeugt eine Kopie (ein Plus oder Minus?) und ist langsamer
Für (100,100)
Ganzzahl-Array:
Ein Test für die Kopie besteht darin, den Datenpufferzeiger mit dem Original zu vergleichen.
%Vor%