将长而缓慢的jupyther-notebook拆分成单独的块

时间:2017-06-28 10:32:29

标签: python numpy jupyter-notebook ipython-notebook

背景

我有一个非常长的jupyther-notebook存储了很多大的numpy数组。 当我用它来记录项目时,jupyther笔记本包含几个独立的块和一个导入块(所有其他块都需要)。在计算了许多单元格后,笔记本电脑变得非常慢,所以我想找到一种方法来加快速度。下面的问题,对我来说似乎是最坚实和最方便的解决方案,但我对其他想法持开放态度。

我的问题:

有没有一种方便的方法,可以定义一个jupyther-notebook的独立块,并且只需点击一下即可彼此分开执行?

到目前为止的想法:

始终将最新的块放在我的笔记本顶部(在include语句之后)。在这个块的末尾写一个raise命令来防止执行更多的块:这有点乱,我只能通过点击查看来执行文档中的块。

将笔记本拆分为单独的笔记本文档:这有帮助,但我想更好地了解我的工作。

delete所有变量,在执行后在当前块中使用:无论出于何种原因,这都没有带来相当大的加速。我有可能在这里做错了吗?

启动我用于jupyther-notebook的浏览器,它具有一些不错的价值(我正在使用linux):这不会提高笔记本电脑的性能,但至少计算机一直运行得很快,我可以在其上做其他事情,等待笔记本。

如果我在这里找不到更好的解决方案,我将最终解决方法是定义变量

actBlock1=False
actBlock2=True
actBlock3=False

并将if语句放在块的所有单元格中。但我更喜欢能产生不必要的ifs和凹痕的东西,以保持我的工作清洁。

非常感谢您提前,

1 个答案:

答案 0 :(得分:2)

您可以查看Jupyter Notebook Extensions package,特别是Freeze扩展程序。它将允许您将单元格标记为“冻结”,这意味着它们无法执行(直到您“解冻”它们,即)。

例如,在此图片中:

Frozen cells

蓝色阴影单元格“冻结”(您可以使用工具栏中的星号按钮选择)。单击“全部运行”后,仅执行了非冻结单元格。