Gibt es eine Möglichkeit, ein NumPy-Array in eine CSV-Datei zu dumpen? Ich habe ein 2D NumPy-Array und muss es in einem für Menschen lesbaren Format ausgeben.
numpy.savetxt
speichert ein Array in eine Textdatei.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
tofile
ist eine praktische Funktion, um dies zu tun:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
Die Manpage enthält einige nützliche Hinweise:
Dies ist eine Komfortfunktion für die schnelle Speicherung von Array-Daten. Informationen über Endianness und Präzision gehen verloren, daher ist diese Methode nicht eine gute Wahl für Dateien, die zur Archivierung von Daten oder zum Transport von Daten zwischen Maschinen mit unterschiedlicher Endianness. Einige dieser Probleme können Einige dieser Probleme lassen sich umgehen, indem die Daten als Textdateien ausgegeben werden, allerdings auf Kosten von Geschwindigkeit und Dateigröße.
Anmerkung. Diese Funktion erzeugt keine mehrzeiligen csv-Dateien, sie speichert alles in einer Zeile.
Wenn Sie Ihr Numpy-Array (z.B. Ihr_Array = np.array([[1,2],[3,4]])
) in einer Zelle speichern wollen, können Sie es zunächst mit Ihr_Array.tolist()
konvertieren.
Dann speichern Sie es auf normale Weise in einer Zelle, mit delimiter=';'
und die Zelle in der csv-Datei wird wie folgt aussehen: [[1, 2], [2, 4]]
Dann können Sie Ihr Array wie folgt wiederherstellen:
Ihr_Array = np.array(ast.literal_eval(cell_string))