IPython: como carregar automaticamente o arquivo npz e atribuir valores a variáveis?
Eu sou novo no Python e estou migrando ansiosamente do MATLAB para o IPython como minha linguagem preferida para análise de dados no laboratório.
No MATLAB, depois de uma sessão de processamento de dados, eu faria
>>> save('myresults.mat','x','y','z');
e salve os resultados das variáveis x, ye z em um arquivo chamado 'myresults.mat'. Mais tarde, eu poderia simplesmente dizer:
>>> load('myresults');
e o MATLAB carregaria o arquivo .mat E atribuiria os valores armazenados das variáveis ao espaço de trabalho atual.
Eu aprendi recentemente que posso fazer o mesmo por IPython usando numpy, a saber:
import numpy as np
a = 2
b = np.sqrt(2)
np.savez('myresultsinpython',a,b)
e depois fazer algo como
npzfile = np.load('myresultsinpython')
No entanto, o que recebo é um objeto do qual posso acessar minhas variáveis:
npzfile['arr_1']
etc., mas perco todas as informações sobre os nomes originais das variáveis. Eu sei que poderia salvar o arquivo fazendo
np.savez('myresultsinpython',a=a,b=b)
mas isso não é tão útil, pois ainda preciso fazer algo como:
npzfile['a']
para acessar o valor da variável.
Como carrego o arquivo e tenho as variáveis criadas no meu espaço de trabalho e seus valores atribuídos de acordo com os valores armazenados no arquivo?
Algo comonp.load('myresults')
e ser capaz de fazera+b
e pegue3.4142135623730949 (=2+sqrt(2))
em troca.