You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook中无法释放被输出捕获的NumPy数组内存怎么办?

Jupyter Notebook中释放被输出捕获的大型NumPy数组内存

你碰到的这个情况确实是Jupyter的输出机制导致的——当你在单元格最后一行单独写变量名并执行时,Notebook内核会把这个变量的引用存在Out字典(比如Out[2]对应单元格2的输出)以及_、__这类特殊变量里,就算你del x,这些地方还攥着引用,内存自然释放不了。

下面是几种显式释放内存的方法:

  • 清除指定单元格的输出引用:找到对应输出的Out键(比如单元格2的输出是Out[2]),删除这个引用后再触发垃圾回收:

    del x
    del Out[2]  # 删除单元格2的输出引用
    import gc
    gc.collect()
    
  • 一键清空所有输出引用:使用Jupyter的魔术命令%reset out,这个命令会直接清空所有Out字典内容以及_、__这类保存输出的变量,之后再删除目标变量并回收内存:

    %reset out -f  # -f参数避免确认提示
    del x
    import gc
    gc.collect()
    
  • 从根源避免输出捕获:如果只是想查看变量内容,不要直接在单元格最后一行写变量名,改用print(x)输出——这样输出的是字符串形式,不会持有原NumPy数组的引用;如果不需要查看,就不要留单独的变量名在单元格末尾。

内容的提问来源于stack exchange,提问作者Yuxai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:50:34