Ich frage mich, ob es eine Möglichkeit gibt, ein mehrdimensionales Array (d. H. Vom Typ ndarray
) entlang vorgegebener Achsen zu glätten, ohne Kopien in NumPy zu erstellen. Zum Beispiel habe ich ein Array von 2D-Bildern und möchte jedes zu einem Vektor abflachen. Also, ein einfacher Weg, es zu tun ist numpy.array([im.flatten() for im in images])
, aber das schafft Kopien von jedem.Wie man Achsen eines multidimensionalen Feldes glatt macht, ohne Kopien in NumPy zu machen?
10
A
Antwort
12
ravel
es:
>>> a = numpy.arange(25).reshape((5, 5))
>>> b = a.ravel()
>>> b[0] = 55
>>> a
array([[55, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
Oder reshape
es:
>>> a = numpy.arange(27).reshape((3, 3, 3))
>>> b = a.reshape((9, 3))
>>> b[0] = 55
>>> a
array([[[55, 55, 55],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
In den meisten Fällen geben diese sowohl einen Blick auf das Original-Array, anstatt eine Kopie.
7
Wenn Sie nicht die Form des Eingangsfeldes kennen:
images.reshape((images.shape[0], -1))
-1
erzählt umformen die übrigen Dimensionen zu erarbeiten. Dies setzt voraus, dass Sie die erste Bildachse glätten wollen.
Verwandte Themen
- 1. Wie man Animation glatt macht
- 2. Vektorsumme von multidimensionalen Arrays in numpy
- 3. jQuery appendTo mehrere Kopien zu machen
- 4. Wie fügt man Achsen zu Subplots hinzu?
- 5. Numpy, wie man über Spalten des Feldes iteriert?
- 6. numpy Umformung multidimensionalen Array durch beliebige Achse
- 7. Erstellen Sie mehrere einzigartige Kopien eines Arrays
- 8. Numpy Interkonvertierung zwischen multidimensionalen und linearen Indexierung
- 9. Sortieren eines 2D-Numpy-Arrays nach mehreren Achsen
- 10. Wie man ein div unsichtbar macht, ohne es zu kommentieren?
- 11. Reorganisation eines multidimensionalen Arrays
- 12. Wie man SELECT MAX in Django macht?
- 13. Mehrere Kopien eines py.test Halterung
- 14. Wie man einige Felder eines assoziativen Feldes in PHP ersetzt?
- 15. Auswahl eines Feldes in Protractor
- 16. Wie man Efeu verwendet, um einen Krieg ohne Kopien in ein lib-Verzeichnis zu erstellen
- 17. Was macht np.r_ (numpy)?
- 18. Machen spezielle Diagonalmatrix in Numpy
- 19. Wie nur Wert eines Feldes in mongodb
- 20. Hinzufügen eines Feldes zu einem Registrierungsformular in meinem Forum - Wie ändert man die Datenbank?
- 21. MYSQL Trigger - wie man das Ergebnis eines berechneten Feldes speichert
- 22. Wie man einen fehlgeschlagenen $ (shell) -Befehls-Interrupt macht Machen Sie
- 23. Datentyp eines Feldes
- 24. Wie kann die Eindeutigkeit eines Feldes validiert werden, ohne Rails zu speichern?
- 25. Rails, wie man eine Datei löscht, ohne Fehler zu machen
- 26. Wie man eine "Referenz" zu einer Struktur in Matlab macht?
- 27. Hinzufügen eines Feldes zu einem Formular (jQuery)
- 28. Wie man eine tiefe Kopie eines InputStream in Java macht
- 29. SQL - Aktualisieren eines Feldes
- 30. wie x zu machen, y-Achse erscheinen in einer Achsen in Python matplotlib
Vielen Dank! 'Umgestaltung 'hat den Trick für mich getan. Ich dachte, bevor es die Eins-zu-Eins-Zuordnung zwischen meinen 2D-Matrizen und Vektoren brechen würde. Aber nein, es hat funktioniert! –