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
rng = np.random.default_rng()
data = rng.random((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([[0.32713476, 0.26072411, 0.97066123],
[0.64324948, 0.22916615, 0.45848477],
[0.74193241, 0.25614138, 0.14923645],
[0.85910429, 0.13530806, 0.57281031],
[0.8111816 , 0.55065099, 0.40271298],
[0.97844806, 0.73711443, 0.2190297 ],
[0.33551703, 0.49527855, 0.08432219]])
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([[0.10701715, 0.06797706, 0.94218322],
[0.41376989, 0.05251713, 0.21020829],
[0.55046371, 0.06560841, 0.02227152],
[0.73806019, 0.01830827, 0.32811166],
[0.65801558, 0.30321652, 0.16217775],
[0.9573606 , 0.54333768, 0.04797401],
[0.11257167, 0.24530084, 0.00711023]])