Wie man nur einige Dimensionen eines numply-Arrays abflacht
Gibt es einen schnellen Weg, um "sub-flatten" oder glätten Sie nur die ersten Dimensionen in ein numpy-array?
Angenommen, Sie haben ein numpy-array der Dimensionen (50,100,25)
die daraus resultierenden Dimensionen, wären (5000,25)
Kommentar zu dem Problem
Dies könnte helfen, stackoverflow.com/questions/13990465/3d-numpy-array-to-2d
Benötigen Sie einen refresher-Kurs auf ndarray numpy-array-slicing. Auch bekannt als multi-dimensionale array-Indizierung finden Sie unter: docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html - Array-slice Ihr ndarray mit eckigen Klammern, und verwenden Sie das Komma als Trennzeichen zu trennen, wie viel von jeder dimension, die Sie möchten. Es wird ungefähr so Aussehen (nicht exakt):
your_array[50:100, 7, :]
die flacht das 3d-Objekt zu 2d, nur mit der slice-Nummer 7 für die 2. dimension. InformationsquelleAutor der Frage Curious | 2013-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf numpy.Umformen .
InformationsquelleAutor der Antwort Alexander
Einer leichten Verallgemeinerung der Alexander-Antwort - np.umgestalten können, nehmen Sie -1 als argument, also "Gesamt-array-Größe, geteilt durch das Produkt aus allen anderen aufgeführten Dimensionen":
z.B. zu glätten alle, aber die Letzte dimension:
InformationsquelleAutor der Antwort Peter
Eine leichte Verallgemeinerung auf die Antwort des Petrus -- können Sie einen Bereich über das ursprüngliche array der Form, wenn Sie wollen, gehen Sie über dreidimensionale arrays.
z.B. zu glätten alle, aber die letzten zwei Abmessungen:
EDIT: EINE leichte Verallgemeinerung zu meiner früheren Antwort-kann man natürlich auch einen Bereich am Anfang der von dem Umformen zu:
InformationsquelleAutor der Antwort KeithWM