如何删除 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 时,我不时使用clear
或clear [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 中生成类似的随机数 [重复]