将又长又慢的 jupyter-notebook 分成不同的块

Split long and slow jupyther-notebook in seperate blocks

背景:

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

我的问题:

有没有一种方便的方法来定义 jupyther-notebook 的独立块,并通过单击视图将它们彼此分开执行?

我目前的想法:

始终将最新的块放在笔记本的顶部(包含语句之后)。在此块的末尾写一个 raise 命令以防止执行更多块:这有点混乱,我无法通过单击视图在文档中进一步执行块。

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

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

启动我用于 jupyther-notebook 的浏览器(我正在使用 linux):这不会提高笔记本的性能,但至少计算机保持 运行 快,我可以在等待笔记本的同时在上面做其他事情。

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

actBlock1=False
actBlock2=True
actBlock3=False

并将 if 语句放入块的所有单元格中。但我更喜欢产生更少不必要的 ifs 和缩进的东西,以保持我的工作干净。

非常感谢您,

你可以看看 Jupyter Notebook Extensions package, and, in particular, at the Freeze 扩展。它将允许您将单元格标记为 "frozen",这意味着它们无法执行(直到您 "unfreeze" 它们,即)。

例如,在这张图片中:

蓝色阴影单元格是 "frozen"(您可以 select 使用工具栏中的星号按钮)。单击 "Run all" 后,仅执行了非冻结单元格。