Dateieingabe und -ausgabe mit Arrays¶
NumPy ist in der Lage, Daten in einigen Text- oder Binärformaten auf der Festplatte zu speichern und von dort zu laden. In diesem Abschnitt gehe ich jedoch nur auf das NumPy-eigene Binärformat ein, da meist pandas oder andere Werkzeuge zum Laden von Text- oder Tabellendaten verwendet werden (siehe Daten lesen, speichern und bereitstellen).
np.save
und np.load
sind die beiden wichtigsten Funktionen zum effizienten Speichern und Laden von Array-Daten auf der Festplatte. Arrays werden standardmäßig in einem unkomprimierten Rohbinärformat mit der Dateierweiterung .npy
gespeichert:
[1]:
import numpy as np
data = np.random.randn(7, 3)
np.save("my_data", data)
Wenn der Dateipfad nicht bereits auf .npy
endet, wird die Erweiterung angehängt. Das Array auf der Festplatte kann dann mit np.load
geladen werden:
[2]:
np.load("my_data.npy")
[2]:
array([[-1.84346172, -0.53302864, 1.37131024],
[ 0.23457529, 1.27414327, 1.77885434],
[ 0.52351246, -1.79912077, -0.55748198],
[ 0.24762959, -0.90100598, 0.18478303],
[-0.73525977, -1.63940599, -1.60407133],
[-0.62536449, -0.03524507, -0.82175049],
[-0.46539262, -0.26317502, 0.74846956]])
Ihr könnt mehrere Arrays in einem unkomprimierten Archiv speichern indem ihr np.savez
verwendet und die Arrays als Schlüsselwortargumente übergebt:
[3]:
np.savez("data_archive.npz", a=data, b=np.square(data))
[4]:
archive = np.load("data_archive.npz")
archive["b"]
[4]:
array([[3.39835111e+00, 2.84119531e-01, 1.88049177e+00],
[5.50255688e-02, 1.62344108e+00, 3.16432278e+00],
[2.74065298e-01, 3.23683556e+00, 3.10786156e-01],
[6.13204151e-02, 8.11811769e-01, 3.41447698e-02],
[5.40606923e-01, 2.68765198e+00, 2.57304483e+00],
[3.91080744e-01, 1.24221481e-03, 6.75273860e-01],
[2.16590291e-01, 6.92610896e-02, 5.60206683e-01]])