Gibt es eine Möglichkeit, ein NumPy-Array in eine CSV-Datei zu kopieren? Ich habe ein 2D-NumPy-Array und muss es in einem für Menschen lesbaren Format ausgeben.
545
numpy.savetxt
speichert ein Array in einer Textdatei.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
numpy.array
Zeichenfolgen aus. Könnten Sie eine Methode zum Speichern als CSV für einnumpy.array
Objekt mit Zeichenfolgen vorschreiben ?fmt='%s'
Sie können verwenden
pandas
. Es braucht etwas zusätzlichen Speicher, so dass es nicht immer möglich ist, aber es ist sehr schnell und einfach zu bedienen.Wenn Sie keinen Header oder Index möchten, verwenden Sie
to_csv("/path/to/file.csv", header=None, index=None)
quelle
df.to_csv("file_path.csv", header=None)
header=None, index=None
entfernen Kopfzeile und Indexspalte.comments
Schlüsselwortargument auf setzen''
, das#
wird unterdrückt.tofile
ist eine bequeme Funktion, um dies zu tun:Die Manpage enthält einige nützliche Hinweise:
Hinweis. Diese Funktion erzeugt keine mehrzeiligen CSV-Dateien, sondern speichert alles in einer Zeile.
quelle
Das Schreiben von Datensatz-Arrays als CSV-Dateien mit Headern erfordert etwas mehr Arbeit.
In diesem Beispiel wird eine CSV-Datei mit dem Header in der ersten Zeile gelesen und anschließend dieselbe Datei geschrieben.
Beachten Sie, dass in diesem Beispiel keine Zeichenfolgen mit Kommas berücksichtigt werden. Verwenden Sie das
csv
Paket , um Anführungszeichen für nicht numerische Daten zu berücksichtigen :quelle
Wie bereits erläutert, können Sie das Array am besten mithilfe einer
.savetxt(...)
Methode in eine CSV-Datei sichern. Es gibt jedoch bestimmte Dinge, die wir wissen sollten, um es richtig zu machen.Zum Beispiel, wenn Sie ein numpy-Array mit
dtype = np.int32
as habenund möchten mit
savetxt
als speichernDie Daten werden im Gleitkomma-Exponentialformat als gespeichert
Sie müssen die Formatierung ändern , indem Sie einen Parameter namens
fmt
alsum Daten im Originalformat zu speichern
Speichern von Daten im komprimierten gz-Format
Auch
savetxt
kann zum Speichern von Daten in verwendetem.gz
komprimiertem Format , das während nützlich sein könnte Daten über das Netzwerk übertragen werden .Wir müssen nur die Erweiterung der Datei ändern, da
.gz
numpy sich automatisch um alles kümmertIch hoffe es hilft
quelle
fmt="%d"
war was ich suchte. Vielen Dank!Ich glaube, Sie können dies auch ganz einfach wie folgt erreichen:
zB # 1:
zB # 2:
quelle
Wenn Sie in eine Spalte schreiben möchten:
Hier ist 'a' der Name des Numpy-Arrays und 'file' ist die Variable, die in eine Datei geschrieben werden soll.
Wenn Sie in Reihe schreiben möchten:
quelle
Wenn Sie Ihr numpy-Array (z. B.
your_array = np.array([[1,2],[3,4]])
) in einer Zelle speichern möchten , können Sie es zuerst mit konvertierenyour_array.tolist()
.Speichern Sie es
delimiter=';'
dann wie gewohnt in einer Zelle mit, und die Zelle in der CSV-Datei sieht folgendermaßen aus[[1, 2], [2, 4]]
Dann könnten Sie Ihr Array folgendermaßen wiederherstellen:
your_array = np.array(ast.literal_eval(cell_string))
quelle
Sie können dies auch mit reinem Python tun, ohne Module zu verwenden.
quelle
In Python verwenden wir das Modul csv.writer (), um Daten in CSV-Dateien zu schreiben. Dieses Modul ähnelt dem Modul csv.reader ().
Ein Trennzeichen ist eine Zeichenfolge, mit der Felder getrennt werden. Der Standardwert ist Komma (,).
quelle