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]])