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.

questionAnswers(2)

yourAnswerToTheQuestion