我正在从Matlab / Octave过渡到NumPy / SciPy。当我在交互模式下使用Matlab时,我不时使用clear
或clear [some_variable]
从内存中删除该变量。例如,在阅读一些新数据以开始一组新的实验之前,我曾经在Matlab中清除数据。
我怎么能用NumPy / SciPy做同样的事情?
我做了一些研究,我发现有一个名为del
的命令,但我听说del
实际上并没有清除内存,但是变量从名称空间中消失了。我是对的吗?
话虽如此,在NumPy / SciPy中模仿“清除”Matlab的最佳方法是什么?
答案 0 :(得分:6)
del(obj)
将有效
如果你在IPython工作,那么你也可以使用%xdel obj
...但我听说“del”实际上并没有清除记忆,而是 变量从命名空间中消失。我是对的吗?
是的,这是正确的。这就是垃圾收集,Python会在有意义的时候清理内存,你不需要担心它,因为从最终变量不再存在。您的代码将表现相同,无论垃圾收集是否已发生但无关紧要,因此无需替代del
。
如果您对Matlab和Pythons垃圾收集/内存分配的差异感到好奇,可以在其上阅读scipy mail list SO线程。