如何在NumPy/SciPy中删除一些变量?

cha*_*com 2 python matlab numpy clear

我正在从Matlab/Octave过渡到NumPy/SciPy.当我在交互模式下使用Matlab时,我不时使用clearclear [some_variable]从内存中删除该变量.例如,在阅读一些新数据以开始一组新的实验之前,我曾经在Matlab中清除数据.

我怎么能用NumPy/SciPy做同样的事情?

我做了一些研究,我发现有一个命令del,但我听说del实际上并没有清除内存,但变量从命名空间中消失了.我对吗?

话虽这么说,在NumPy/SciPy中模仿"清除"Matlab的最佳方式是什么?

Par*_*ker 6

del(obj)根据scipy邮件列表,将工作

如果你在IPython工作,那么你也可以使用 %xdel obj

...但我听说"del"实际上并没有清除内存,但变量从命名空间中消失了.我对吗?

对,那是正确的.这就是垃圾收集,Python会在有意义的时候清理内存,你不需要担心它,因为从最终变量不再存在.您的代码将表现相同,无论是否已发生垃圾收集都无关紧要,因此无需替代del.

如果您对Matlab和Pythons垃圾收集/内存分配的差异感到好奇,可以在其上阅读 SO线程.