IPython: ¿cómo cargar automáticamente el archivo npz y asignar valores a las variables?

Soy nuevo en Python y estoy migrando ansiosamente de MATLAB a IPython como mi idioma preferido para el análisis de datos en el laboratorio.

En MATLAB, después de una sesión de procesamiento de datos, haría

>>> save('myresults.mat','x','y','z');

y guarde los resultados de las variables x, y y z en un archivo llamado 'myresults.mat'. Más tarde, simplemente podría decir:

>>> load('myresults');

y MATLAB cargaría el archivo .mat Y asignaría los valores almacenados de las variables al espacio de trabajo actual.

Recientemente he aprendido que puedo hacer lo mismo para IPython usando numpy, a saber:

import numpy as np
a = 2
b = np.sqrt(2)
np.savez('myresultsinpython',a,b)

y luego hacer algo como

npzfile = np.load('myresultsinpython')

Sin embargo, lo que obtengo es un objeto desde el cual puedo acceder a mis variables:

npzfile['arr_1']

etc., pero pierdo toda la información sobre los nombres originales de las variables. Sé que podría guardar el archivo haciendo

np.savez('myresultsinpython',a=a,b=b)

pero esto no es tan útil, ya que todavía tengo que hacer algo como:

npzfile['a']

para acceder al valor de la variable.

¿Cómo cargo tanto el archivo como las variables creadas en mi espacio de trabajo y sus valores asignados de acuerdo con los valores almacenados en el archivo?

Algo comonp.load('myresults') y poder hacera+b y obten3.4142135623730949 (=2+sqrt(2)) en cambio.

Respuestas a la pregunta(2)

Su respuesta a la pregunta