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

Posted

技术标签:

【中文标题】如何删除 NumPy/SciPy 中的一些变量?【英文标题】:How can I delete some variables in NumPy/SciPy? 【发布时间】:2015-08-25 18:30:37 【问题描述】:

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

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

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

话虽如此,在 NumPy/SciPy 中模拟“清晰”Matlab 的最佳方法是什么?

【问题讨论】:

使用删除。如果一个对象没有被引用,它将被删除 我会说“开始一个新笔记本”。如果这对你没有任何意义,你真的需要查看 ipython 笔记本,(ipython.org/notebook.html,opentechschool.github.io/python-data-intro/core/notebook.html)我保证它们会改变你的生活。 @chanwcom,您的问题得到解答还是需要帮助? 【参考方案1】:

del(obj) 可以工作,根据scipy mail list

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

...但我听说“del”实际上并不会清除内存,但是 变量从命名空间中消失。我说的对吗?

是的,没错。这就是垃圾收集,Python 将在有意义时处理清除内存,您无需担心它,因为从您的角度来看,变量不再存在。您的代码将表现相同,无论是否发生垃圾回收都无关紧要,因此无需替代 del

如果你对 Matlab 和 Python 的垃圾回收/内存分配的区别感到好奇,可以阅读thisSO thread 上面的内容。

【讨论】:

以上是关于如何删除 NumPy/SciPy 中的一些变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得某些数据的“形状”,以便可以在 numpy/scipy 中生成类似的随机数 [重复]

Numpy / Scipy中的快速线性插值“沿路径”

如何系统地学习Python 中 matplotlib,numpy,scipy,pandas

使用 numpy/scipy 识别数字信号的斜率变化?

python numpy/scipy曲线拟合

如何系统地学习Python 中 matplotlib,numpy,scipy,pandas