【发布时间】:2014-01-15 21:12:12
【问题描述】:
我在 IPython 中处理一些 GB 大小的 numpy 数组。当我删除它们时,我绝对希望它们消失,以恢复记忆。 IPython 的输出缓存在那里非常烦人,因为即使在删除了对它们的最后一个主动 引用之后,它仍然保持对象的活动状态。我已经设置了
c.TerminalInteractiveShell.cache_size = 0
在 IPython 配置中,但这只会禁用缓存到 _oh 的条目,其他变量如 _、__ 等仍会创建。我也知道%xdel,但无论如何,我宁愿完全禁用它,因为我很少使用输出历史记录,所以一个普通的del 会立即再次工作。
【问题讨论】:
-
只有当你显示它们时,那些大数组才会被分配给缓存(
_等),不是吗?赋值x=largearray和largearray;抑制它。 -
是的,但是为了显示它们,我总是不得不使用 print 而不是仅仅输入变量名。所以我仍然回到同一个问题,如何避免这种情况。
-
通常只显示形状或大数组的一部分(例如前 10 行或列)比显示整个内容更有用。在显示大型数组时不使用省略号的旧 MATLAB 上尤其如此。
标签: caching output ipython history