IPython: Wie lade ich automatisch eine npz-Datei und weise Variablen Werte zu?
Ich bin neu in Python und migriere eifrig von MATLAB zu IPython als meine bevorzugte Sprache für die Datenanalyse im Labor.
In MATLAB würde ich nach einer Sitzung, in der die Daten zerkleinert wurden,
>>> save('myresults.mat','x','y','z');
und speichern Sie die Ergebnisse der Variablen x, y und z in einer Datei namens 'myresults.mat'. Später könnte ich einfach sagen:
>>> load('myresults');
und MATLAB würde die .mat-Datei laden UND die gespeicherten Werte der Variablen dem aktuellen Arbeitsbereich zuweisen.
Ich habe kürzlich erfahren, dass ich mit numpy auf ähnliche Weise für IPython vorgehen kann, nämlich:
import numpy as np
a = 2
b = np.sqrt(2)
np.savez('myresultsinpython',a,b)
und später etwas wie
npzfile = np.load('myresultsinpython')
Was ich jedoch erhalte, ist ein Objekt, über das ich auf meine Variablen zugreifen kann:
npzfile['arr_1']
etc., aber ich verliere alle Informationen über die ursprünglichen Namen der Variablen. Ich weiß, dass ich die Datei speichern kann, indem ich @ mac
np.savez('myresultsinpython',a=a,b=b)
aber das ist nicht so nützlich, da ich noch so etwas machen muss:
npzfile['a']
, um auf den Wert der Variablen zuzugreifen.
Wie lade ich die Datei und lasse die Variablen in meinem Arbeitsbereich erstellen und deren Werte entsprechend den in der Datei gespeicherten Werten zuweisen?
Etwas wienp.load('myresults')
und in der Lage sein zu tuna+b
und bekomme3.4142135623730949 (=2+sqrt(2))
im Gegenzug