在第一个停止的地方开始第二个 Jupyter notebook

Starting second Jupyter notebook where first left off

上下文:

我开始使用 Jupyter Lab 自学一些新的库。我知道在 SO 上表达情感是被严格禁止的,这会被编辑,但是哇,Jupyter notebooks 很酷!

无论如何,我在处理代码示例时会用 markdown 做笔记。它让我产生了在学习的同时编写自己的小教科书的想法。

比如笔记本1,我讲(自学)线性回归。它记下词汇,展示一些数学公式,然后通过一些代码示例进行操作。结束部分。

在笔记本 2 中,我开始讨论不同的指标,以展示回归模型的有效性。然后我想执行一些代码来计算这些指标......但是回归模型的所有代码都在最后一个笔记本中,我无法访问它。

问题:

有没有办法 link 将这两个笔记本放在一起,这样我就不必重新编写第一个笔记本的代码了?

我的尝试:

似乎最接近我想做的事情是使用

%run notebook_01.ipynb

但是,这会引发错误。请注意,它似乎在搜索 运行:

的 .py 文件

ERROR:root:File 'linear_regression01.ipynb.py' not found.

我发现了一些 questions/answers 这似乎对其他用户有效,但对我却无效。

编辑: 我得到了魔法命令 %run 来工作,但是它 运行s 并且将整个第一个笔记本打印到第二个笔记本中。我很高兴知道如何做到这一点,它确实实现了不必重新编码的目标,但它绝对会重新打印我不想要的所有内容。

好的,我通过抑制输出找到了答案:

把这个放在你的第二个笔记本的顶部:

from IPython.utils import io
with io.capture_output() as captured:
    %run your_linked_notebook.ipynb 

这将使您想要的笔记本 link 变为 运行,允许您使用其中的任何数据,但不必查看其中的所有输出和可视化效果。

如果您要处理大量数据或link使用大量执行昂贵计算的笔记本,这可能不是一个好方法,但可能对大多数人有用。

如果有不涉及 运行 笔记本 linked 的答案,我会很高兴看到它。

如果您从命令行运行这样做:

jupyter nbconvert --to script first_notebook.iynb

它将从您的第一个名为 'first_notebook.py' 的笔记本中创建一个 python 文件。之后,您可以使用以下命令从该文件导入您的第二个笔记本:

import first_notebook