Jupyter
Jupyter 笔记本把可执行代码、Markdown 说明、公式和运行输出放在同一个 .ipynb 文件中。你可以改动算例的参数,把新的计算结果或图像留在解释旁边。JupyterLab 围绕这种文件格式,提供文件浏览器、终端、编辑器和多笔记本工作界面。
拿本站算例动手
下面链接的是含 Python 代码的公开 Markdown 笔记,不是可下载的 notebook。把算例复制到自己的笔记本时,也把适用条件写在代码单元格旁边。
运行前,在笔记本之外记录并锁定 Python 和依赖包版本。这两个算例的输入都在代码中给定或生成;若换成自己的数据集,要记录来源,并使用可移植的相对路径,避免依赖特定机器的绝对路径。使用 R 笔记本时,也应锁定 R 环境。
从头重新运行
内核是执行代码并保留变量的进程。页面上的单元格顺序,未必就是先前的执行顺序,因此保存下来的输出本身不能证明计算可复现。
改完算例后,重启内核,从上到下运行所有单元格。这能暴露缺失的导入,或对先前运行残留变量的依赖。保留解释新结果所需的参数和文字;不适合放进 Git 的大型生成输出,应作为构建产物处理。
笔记本适合探索和解释。当其他程序开始依赖其中的代码时,把可复用逻辑移到普通源文件中并配上测试,不要让它依赖笔记本的执行顺序。
延伸阅读
- Jupyter 架构:解释客户端、服务器、内核、笔记本文件和消息通道。
- Project Jupyter 官方文档:安装指南和项目全貌。
- JupyterLab 文档:界面使用说明。
- nbconvert 文档:用脚本导出 HTML、Markdown、PDF 等格式。