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([[ 0.94742917, -1.61998927, 0.58811464],
[ 0.76779587, -1.30799936, -0.23834223],
[-2.13912266, -0.49191404, -0.49316354],
[-0.62636589, -1.2023549 , 1.41655391],
[ 0.85182508, 0.09138964, 0.79240571],
[ 1.22517044, 0.9233269 , 0.44967536],
[-0.68252408, -0.00765624, 0.10032318]])
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([[8.97622033e-01, 2.62436524e+00, 3.45878832e-01],
[5.89510504e-01, 1.71086232e+00, 5.68070195e-02],
[4.57584576e+00, 2.41979423e-01, 2.43210281e-01],
[3.92334231e-01, 1.44565730e+00, 2.00662497e+00],
[7.25605970e-01, 8.35206615e-03, 6.27906803e-01],
[1.50104262e+00, 8.52532560e-01, 2.02207929e-01],
[4.65839120e-01, 5.86179351e-05, 1.00647409e-02]])