Numpy / IPython相当于Matlab的assignin

时间:2011-07-15 15:23:57

标签: python matlab numpy ipython matplotlib

我正在将一些内部数据可视化/分析工具从Matlab迁移到IPython / Numpy / Scipy / PyLab。我所指的工具是Matlab GUI,它只进行简单的分析。偶尔,我想进行更复杂的分析,在这种情况下,我按下GUI中的一个按钮,执行Matlab的“assignin('base',...”。这会将数据放入顶级会话,我可以在那里进行进一步的操作在它上面。

这不是我对“assignin”的唯一用例。作为另一个例子,我还使用它从一个脚本深处的函数将数据导出到主Matlab会话。 (这只是一个临时/调试技巧而不是常规练习。)

所以我问:在交互式IPython / PyLab环境中工作时,是否有相当于Matlab的assignin?如果没有直接的等价物,我怎样才能将从IPython启动的脚本中的数据恢复到主会话中?

1 个答案:

答案 0 :(得分:2)

查看全局命名空间。实际上,我会使用类似下面的代码,具体取决于您的变量是否具有静态名称,或者名称是否可以动态更改。

def staticAssignInBase():
    global x
    x = 'someValue'

def dynamicAssignInBase():
    g = globals()
    g['someVarName'] = 'someValue'

但请注意,这可能不适用于包边界!