我已经安装了Anaconda并创建了两个额外的环境:py3k(它拥有Python 3.3)和py34(它拥有Python 3.4).除此之外,我还有一个名为"root"的默认环境,Anaconda安装程序默认创建该环境并保存Python 2.7.最后一个是默认值,每当我从终端启动'ipython'时它就会给我2.7版本.为了使用Python 3.4,我需要发出命令(在shell中)
source activate py34
ipython
Run Code Online (Sandbox Code Playgroud)
它将默认环境更改为Python 3.4.这很好用,但是很烦人,因为大多数时候我使用的是Python 3.4,而不是Python 2.7(我为教学目的而持有,这是一个相当长的故事).无论如何,我想知道如何将默认环境更改为Python 3.4,请记住我不想从头开始重新安装所有内容.
我是 Python 新手,我热切地从 MATLAB 迁移到 IPython,作为我在实验室进行数据分析的首选语言。
在 MATLAB 中,经过一段数据处理后,我会这样做
>>> save('myresults.mat','x','y','z');
Run Code Online (Sandbox Code Playgroud)
并将变量 x、y 和 z 的结果保存在名为“myresults.mat”的文件中。后来我只能简单地说:
>>> load('myresults');
Run Code Online (Sandbox Code Playgroud)
MATLAB 将加载 .mat 文件并将存储的变量值分配给当前工作区。
我最近了解到我可以使用 numpy 对 IPython 执行类似的操作,即:
import numpy as np
a = 2
b = np.sqrt(2)
np.savez('myresultsinpython',a,b)
Run Code Online (Sandbox Code Playgroud)
然后做类似的事情
npzfile = np.load('myresultsinpython')
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是一个对象,我可以通过以下方式访问我的变量:
npzfile['arr_1']
Run Code Online (Sandbox Code Playgroud)
等等,但我丢失了有关变量原始名称的所有信息。我知道我可以通过以下方式保存文件
np.savez('myresultsinpython',a=a,b=b)
Run Code Online (Sandbox Code Playgroud)
但这并不是那么有用,因为我仍然需要做类似的事情:
npzfile['a']
Run Code Online (Sandbox Code Playgroud)
访问变量的值。
如何加载文件并在工作区中创建变量并根据文件中存储的值分配它们的值?
诸如np.load('myresults')
能够做a+b
并获得3.4142135623730949 (=2+sqrt(2))
回报的事情。
python ×2
anaconda ×1
environment ×1
ipython ×1
load ×1
numpy ×1
python-2.7 ×1
python-3.x ×1
save ×1