Tweet Share Share

Last Updated on August 19, 2020

Die Entwicklung von Machine-Learning-Modellen in Python erfordert häufig die Verwendung von NumPy-Arrays.

NumPy-Arrays sind effiziente Datenstrukturen für die Arbeit mit Daten in Python, und Machine-Learning-Modelle wie die der Bibliothek scikit-learn und Deep-Learning-Modelle wie die der Bibliothek Keras erwarten Eingabedaten im Format von NumPy-Arrays und machen Vorhersagen im Format von NumPy-Arrays.

Als solches ist es üblich, NumPy-Arrays in einer Datei zu speichern.

Zum Beispiel können Sie Ihre Daten mit Transformationen wie Skalierung vorbereiten und müssen sie zur späteren Verwendung in einer Datei speichern. Sie können auch ein Modell verwenden, um Vorhersagen zu treffen, und müssen die Vorhersagen für die spätere Verwendung in einer Datei speichern.

In diesem Tutorial erfahren Sie, wie Sie Ihre NumPy-Arrays in einer Datei speichern können.

Nach Abschluss dieses Tutorials werden Sie wissen:

  • Wie man NumPy-Arrays in CSV-formatierten Dateien speichert.
  • Wie man NumPy-Arrays in NPY-formatierten Dateien speichert.
  • Wie man NumPy-Arrays in komprimierten NPZ-formatierten Dateien speichert.

Starten Sie Ihr Projekt mit meinem neuen Buch Machine Learning Mastery With Python, das Schritt-für-Schritt-Tutorials und die Python-Quellcode-Dateien für alle Beispiele enthält.

Lassen Sie uns beginnen.

Wie man ein NumPy-Array in einer Datei für maschinelles Lernen speichert

Wie man ein NumPy-Array in einer Datei für maschinelles Lernen speichert
Foto von Chris Combe, einige Rechte vorbehalten.

Überblick über das Tutorial

Dieses Tutorial ist in drei Teile gegliedert; sie sind:

  1. Speichern eines NumPy-Arrays in eine .CSV-Datei (ASCII)
  2. Speichern von NumPy-Array in .NPY-Datei (binär)
  3. Speichern von NumPy-Array in .NPZ-Datei (komprimiert)

Speichern von NumPy-Array in .CSV-Datei (ASCII)

Das gebräuchlichste Dateiformat für die Speicherung numerischer Daten in Dateien ist das kommagetrennte Variablenformat, kurz CSV.

Es ist sehr wahrscheinlich, dass Ihre Trainingsdaten und Eingabedaten für Ihre Modelle in CSV-Dateien gespeichert werden.

Es kann praktisch sein, Daten in CSV-Dateien zu speichern, wie z.B. die Vorhersagen eines Modells.

Sie können Ihre NumPy-Arrays mit der Funktion savetxt() in CSV-Dateien speichern. Diese Funktion nimmt einen Dateinamen und ein Array als Argumente und speichert das Array im CSV-Format.

Sie müssen auch das Trennzeichen angeben; dies ist das Zeichen, das verwendet wird, um jede Variable in der Datei zu trennen, meistens ein Komma. Dies kann über das Argument „delimiter“ festgelegt werden.

1.1 Beispiel für das Speichern eines NumPy-Arrays in einer CSV-Datei

Das folgende Beispiel zeigt, wie man ein einzelnes NumPy-Array im CSV-Format speichert.

1
2
3
4
5
6
7

# speichern numpy array as csv file
from numpy import asarray
from numpy import savetxt
# define data
data = asarray(])
# save to csv file
savetxt(‚data.csv‘, data, delimiter=‘,‘)

Das Ausführen des Beispiels definiert ein NumPy-Array und speichert es in der Datei ‚data.csv‘.

Das Array hat eine einzelne Datenzeile mit 10 Spalten. Wir würden erwarten, dass diese Daten in einer CSV-Datei als eine einzige Datenzeile gespeichert werden.

Nach der Ausführung des Beispiels können wir den Inhalt von ‚data.csv‘ untersuchen.

Wir sollten das Folgende sehen:

1
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.0000000000000000000000e+00,8.000000000000000000e+00,9.0000000000000000000000e+00

Wir können sehen, dass die Daten korrekt als eine einzige Zeile gespeichert werden und dass die Fließkommazahlen im Array mit voller Genauigkeit gespeichert wurden.

1.2 Beispiel für das Laden eines NumPy-Arrays aus einer CSV-Datei

Wir können diese Daten später mit der Funktion loadtext() als NumPy-Array laden und dabei den Dateinamen und das gleiche Komma-Trennzeichen angeben.

Das vollständige Beispiel ist unten aufgeführt.

1
2
3
4
5
6

# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt(‚data.csv‘, delimiter=‘,‘)
# print(data)

Das Ausführen des Beispiels lädt die Daten aus der CSV-Datei und druckt den Inhalt aus, der unserer einzelnen Zeile mit 10 Spalten aus dem vorherigen Beispiel entspricht.

1

Speichere NumPy-Array in .NPY-Datei (binär)

Manchmal haben wir eine Menge Daten in NumPy-Arrays, die wir effizient speichern möchten, die wir aber nur in einem anderen Python-Programm benötigen.

Deshalb können wir die NumPy-Arrays in einem nativen Binärformat speichern, das sowohl beim Speichern als auch beim Laden effizient ist.

Dies ist üblich für aufbereitete Eingabedaten, wie z. B. transformierte Daten, die in Zukunft als Grundlage für das Testen einer Reihe von Modellen für maschinelles Lernen oder für die Durchführung vieler Experimente verwendet werden sollen.

Das .npy-Dateiformat ist für diesen Anwendungsfall geeignet und wird einfach als „NumPy-Format“ bezeichnet.

Dies kann mit der NumPy-Funktion save() und der Angabe des Dateinamens und des zu speichernden Arrays erreicht werden.

2.1 Beispiel für das Speichern eines NumPy-Arrays in einer NPY-Datei

Das folgende Beispiel definiert unser zweidimensionales NumPy-Array und speichert es in einer .npy-Datei.

1
2
3
4
5
6
7

# numpy-Array als npy-Datei speichern
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# in npy-Datei speichern
save(‚data.npy‘, data)

Nach der Ausführung des Beispiels sehen Sie eine neue Datei im Verzeichnis mit dem Namen ‚data.npy‘.

Sie können den Inhalt dieser Datei nicht direkt mit Ihrem Texteditor untersuchen, da sie im Binärformat vorliegt.

2.2 Beispiel für das Laden eines NumPy-Arrays aus einer NPY-Datei

Sie können diese Datei später mit der Funktion load() als NumPy-Array laden.

Das vollständige Beispiel ist unten aufgeführt.

1
2
3
4
5
6

# load numpy array from npy file
from numpy import load
# load array
data = load(‚data.npy‘)
# print the array
print(data)

Das Ausführen des Beispiels lädt die Datei und druckt den Inhalt, um zu bestätigen, dass die Datei korrekt geladen wurde und dass der Inhalt dem entspricht, was wir im gleichen zweidimensionalen Format erwarten.

1
]

Speichern von NumPy-Array in .NPZ-Datei (komprimiert)

Manchmal bereiten wir Daten für die Modellierung vor, die über mehrere Experimente hinweg wiederverwendet werden müssen, aber die Daten sind groß.

Dabei kann es sich um vorverarbeitete NumPy-Arrays handeln, wie z. B. ein Textkorpus (Ganzzahlen) oder eine Sammlung von neu skalierten Bilddaten (Pixel). In diesen Fällen ist es wünschenswert, die Daten nicht nur in einer Datei, sondern auch in einem komprimierten Format zu speichern.

Dadurch können Gigabytes von Daten auf Hunderte von Megabytes reduziert werden und ermöglichen eine einfache Übertragung auf andere Server des Cloud-Computing für lange Algorithmenläufe.

Das .npz-Dateiformat ist für diesen Fall geeignet und unterstützt eine komprimierte Version des nativen NumPy-Dateiformats.

Mit der NumPy-Funktion savez_compressed() können mehrere NumPy-Arrays in einer einzigen komprimierten .npz-Datei gespeichert werden.

3.1 Beispiel für das Speichern eines NumPy-Arrays in einer NPZ-Datei

Wir können diese Funktion verwenden, um unser einzelnes NumPy-Array in einer komprimierten Datei zu speichern.

Das vollständige Beispiel ist unten aufgeführt.

1
2
3
4
5
6
7

# numpy speichern array als npz file
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# save to npy file
savez_compressed(‚data.npz‘, data)

Das Ausführen des Beispiels definiert das Array und speichert es in eine Datei im komprimierten Numpy-Format mit dem Namen ‚data.npz‘.

Wie beim .npy-Format können wir den Inhalt der gespeicherten Datei nicht mit einem Texteditor untersuchen, da das Dateiformat binär ist.

3.2 Beispiel für das Laden eines NumPy-Arrays aus einer NPZ-Datei

Wir können diese Datei später mit der gleichen load()-Funktion aus dem vorherigen Abschnitt laden.

In diesem Fall unterstützt die Funktion savez_compressed() das Speichern mehrerer Arrays in einer einzigen Datei. Daher kann die load()-Funktion mehrere Arrays laden.

Die geladenen Arrays werden von der load()-Funktion in einem Diktat mit den Namen ‚arr_0‘ für das erste Array, ‚arr_1‘ für das zweite und so weiter zurückgegeben.

Das vollständige Beispiel zum Laden unseres einzelnen Arrays ist unten aufgeführt.

1
2
3
4
5
6
7
8

# load numpy array from npz file
from numpy import load
# load dict of arrays
dict_data = load(‚data.npz‘)
# Extrahiere das erste Array
data = dict_data
# Drucke das Array
print(data)

Das Ausführen des Beispiels lädt die komprimierte Numpy-Datei, die ein Wörterbuch mit Arrays enthält, extrahiert dann das erste Array, das wir gespeichert haben (wir haben nur eines gespeichert), druckt dann den Inhalt aus und bestätigt, dass die Werte und die Form des Arrays mit dem übereinstimmen, was wir zuerst gespeichert haben.

1
]

Weitere Lektüre

In diesem Abschnitt finden Sie weitere Ressourcen zu diesem Thema, wenn Sie das Thema vertiefen möchten.

Beiträge

  • Wie man Daten für maschinelles Lernen in Python lädt
  • Eine sanfte Einführung in NumPy-Arrays in Python
  • Wie man NumPy-Arrays für maschinelles Lernen indiziert, aufteilt und umgestaltet

APIs

  • numpy.savetxt API
  • numpy.save API
  • numpy.savez API
  • numpy.savez_compressed API
  • numpy.load API
  • numpy.loadtxt API

Zusammenfassung

In diesem Tutorial haben Sie erfahren, wie Sie Ihre NumPy-Arrays in einer Datei speichern können.

Speziell haben Sie gelernt:

  • Wie man NumPy-Arrays in CSV-formatierten Dateien speichert.
  • Wie man NumPy-Arrays in NPY-formatierten Dateien speichert.
  • Wie speichert man NumPy-Arrays in komprimierten Dateien im NPZ-Format?

Haben Sie Fragen?
Setzen Sie sich mit Ihren Fragen in den Kommentaren unten auseinander und ich werde mein Bestes tun, um sie zu beantworten.

Entdecke schnelles maschinelles Lernen in Python!

Meistere maschinelles Lernen mit Python

Entwickle deine eigenen Modelle in wenigen Minuten

…mit nur ein paar Zeilen Scikit-Learn-Code

Lernen Sie in meinem neuen Ebook:
Machine Learning Mastery With Python

Das Buch umfasst Tutorials zum Selbststudium und durchgängige Projekte wie:
Laden von Daten, Visualisierung, Modellierung, Tuning und vieles mehr…

Bringen Sie Machine Learning endlich in
Ihre eigenen Projekte

Skip the Academics. Just Results.

See What’s Inside

Tweet Share Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.