如何从Jupyter Notebook中的对象释放内存

Tha*_*eed 6 python pandas jupyter-notebook

我试图弄清楚如何在jupyter笔记本上工作时释放python对象占用的空间。

在特定的场景中,我正在处理多个大型数据框,完成一些计算后,我想加载一个新的数据框。

但是,这总是会导致内存错误,并且我的系统开始冻结。

所以我想我将尝试删除python对象。

到目前为止我尝试过的事情:
1.使用del并调用垃圾收集器

del pyobject
import gc
gc.collect()
Run Code Online (Sandbox Code Playgroud)
  1. 使用IPython Magic命令

    %reset_selective -f pyobject

这两种方法均无法真正释放内存。查看htop命令后,我发现jupyter笔记本计算机仍在使用20GB的RAM。仅当我重新启动内核时,它们的内存才被释放(但是后来我失去了下一步数据分析所需的所有其他变量)

Mih*_*rei 1

确保您的数据不存在其他引用。没有基于该数组的其他视图吗?您可以使用get_referrers获取包含对某些内容的引用的对象

如果有任何观点,您应该将其复制。特别是 ipython 倾向于在名为 的变量中保留对先前评估的引用_, _1, _23 etc。%reset_selective 应该清除这些。