Jupyter Notebook 是一个开源 Web 应用程序,您可以使用它来创建和共享包含实时代码、方程、可视化和文本的文档。 Jupyter Notebook 由以下人员维护Jupyter 项目 .
启动并运行 Jupyter Notebook
Jupyter Notebook 不包含在 Python 中,因此如果您想尝试它,则需要安装 Jupyter。
Python 语言有许多发行版。为了安装 Jupyter Notebook,本文将仅重点介绍其中两个。最受欢迎的是CPython ,这是 Python 的参考版本,您可以从他们的网站获得网站 。还假设您正在使用蟒蛇3 .
安装
如果是这样,那么您可以使用 Python 附带的一个方便的工具,称为pip 像这样安装 Jupyter Notebook:
下一个最流行的 Python 发行版是蟒蛇 。 Anaconda 有自己的安装工具,名为康达 您可以使用它来安装第三方软件包。然而,Anaconda 预装了许多科学库,包括 Jupyter Notebook,因此除了安装 Anaconda 本身之外,您实际上不需要执行任何操作。
启动 Jupyter Notebook 服务器
现在您已经安装了 Jupyter,让我们学习如何使用它。首先,您所需要做的就是打开终端应用程序并转到您选择的文件夹。我建议使用类似 Documents 文件夹的内容开始并创建一个名为的子文件夹笔记本电脑 或者其他容易记住的东西。
然后只需转到终端中的该位置并运行以下命令:
这将启动 Jupyter,并且您的默认浏览器应启动(或打开新选项卡)并访问以下 URL:http://localhost:8888/树
您的浏览器现在应该如下所示:
请注意,现在您实际上并未运行笔记本,而只是运行笔记本服务器。现在让我们实际创建一个笔记本!
创建笔记本
现在您已经知道如何启动 Notebook 服务器,您可能应该学习如何创建实际的 Notebook 文档。
您所需要做的就是单击New 按钮(右上角),它将打开一个选项列表。在我的机器上,我碰巧安装了 Python 2 和 Python 3,因此我可以创建一个使用其中任何一个的笔记本。为了简单起见,我们选择 Python 3。
您的网页现在应如下所示:
命名
你会注意到页面顶部有这个词无标题 。这是页面的标题和笔记本的名称。由于这不是一个非常具有描述性的名称,让我们更改它!
只需将鼠标移到单词上即可无标题 并单击文本。您现在应该看到一个标题为的浏览器内对话框重命名笔记本 。我们将其重命名为你好朱皮特 :
运行细胞
当您第一次创建 Notebook 时,Notebook 的单元默认使用代码,并且该单元使用您启动 Notebook 时选择的内核。
在本例中,您开始使用 Python 3 作为内核,因此这意味着您可以在代码单元中编写 Python 代码。由于您最初的笔记本中只有一个空单元格,因此笔记本实际上无法执行任何操作。
因此,为了验证一切是否正常工作,您可以向单元添加一些 Python 代码并尝试运行其内容。
让我们尝试将以下代码添加到该单元格:
Running a cell means that you will execute the cell’s contents. To execute a cell, you can just select the cell and click the Run button that is in the row of buttons along the top. It’s towards the middle. If you prefer using your keyboard, you can just press Shift + Enter .
当我运行上面的代码时,输出如下所示:
如果您的笔记本中有多个单元,并且按顺序运行这些单元,则可以在单元之间共享变量和导入。这使得您可以轻松地将代码分成逻辑块,而无需重新导入库或在每个单元中重新创建变量或函数。
当你运行一个单元格时,你会注意到单词旁边有一些方括号In 到单元格的左侧。方括号将自动填充一个数字,指示您运行单元格的顺序。例如,如果您打开一个新的笔记本并运行笔记本顶部的第一个单元格,方括号将填充数字1 .
Jupyter Notebook 有多个菜单,可用于与 Notebook 进行交互。菜单沿着笔记本的顶部运行,就像菜单 在其他应用程序中执行此操作。以下是当前菜单的列表:
让我们一一浏览一下菜单。本文不会详细介绍每个菜单中的每个选项,但将重点介绍笔记本应用程序特有的项目。
第一个菜单是“文件”菜单。在其中,您可以创建一个新的笔记本或打开一个预先存在的笔记本。您也可以在此处重命名笔记本。我认为最有趣的菜单项是保存并检查点 选项。这允许您创建可以在需要时回滚的检查点。
接下来是编辑 菜单。您可以在此处剪切、复制和粘贴单元格。如果您想要删除、拆分或合并单元格,也可以到此进行操作。您也可以在此处重新排序单元格。
请注意,此菜单中的某些项目呈灰色。原因是它们不适用于当前选定的单元格。例如,代码单元格不能插入图像,但 Markdown 单元格可以。如果您看到灰色的菜单项,请尝试更改单元格的类型并查看该项目是否可供使用。
这看法 菜单对于切换标题和工具栏的可见性很有用。您还可以切换行号 单元格内打开或关闭。如果您想修改单元格的工具栏,也可以到这里。
这插入 菜单仅用于在当前选定单元格的上方或下方插入单元格。
这细胞 菜单允许您运行一个单元、一组单元或所有单元。您还可以转到此处更改单元格的类型,尽管我个人认为工具栏更直观。
该菜单中的另一个方便的功能是清除单元格输出的能力。如果您计划与其他人共享您的笔记本,您可能需要首先清除输出,以便下一个人可以自己运行单元。
这核心 cell 用于处理在后台运行的内核。在这里您可以重新启动内核、重新连接它、关闭它,甚至更改您的笔记本电脑正在使用的内核。
您可能不会经常使用内核,但有时在调试笔记本时您会发现需要重新启动内核。当这种情况发生时,这就是你要去的地方。
这小部件 菜单用于保存和清除小部件状态。小部件基本上是JavaScript 您可以将其添加到单元格中以使用 Python(或其他内核)制作动态内容的小部件。
最后你有帮助 菜单,您可以在其中了解笔记本电脑的键盘快捷键、用户界面概览和大量参考资料。
启动终端和其他东西
Jupyter Notebook 还允许您启动更多笔记本。您还可以在浏览器中创建文本文件、文件夹或终端。返回首次启动 Jupyter 服务器时打开的主页:http://localhost:8888/tree
。前往New 按钮并选择其他选项之一。
终端可能是其中最有趣的,因为它在浏览器中运行操作系统终端。这允许您在浏览器中运行 bash、Powershell 等,并运行您可能需要的任何 shell 命令。
查看正在运行的内容
也在 Jupyter 服务器的主页上(http://localhost:8888/tree
) 是另外两个选项卡:跑步 和集群 .
这跑步 选项卡将告诉您当前正在运行哪些笔记本和终端。当您想要关闭服务器但需要确保已保存所有数据时,这非常有用。幸运的是,笔记本自动保存的频率很高,因此您很少会丢失数据。但能够在需要时查看正在运行的内容是件好事。
此选项卡的另一个好处是您可以浏览正在运行的应用程序并将其关闭。
添加丰富的内容
Jupyter Notebook 支持向其单元格添加丰富的内容。在本节中,您将概述使用标记和代码可以对单元格执行的一些操作。
细胞类型
从技术上讲,有四种单元格类型:Code、Markdown、Raw NBConvert 和 Heading。
不再支持标题单元格类型,并将显示一个包含同样内容的对话框。相反,您应该使用 Markdown 作为标题。
原始 NBConvert 单元类型仅适用于使用nbconvert
命令行工具。基本上,它允许您在从笔记本转换为另一种格式时以非常特定的方式控制格式。
您将使用的主要单元格类型是代码和 Markdown 单元格类型。您已经了解了代码单元的工作原理,所以让我们学习如何使用 Markdown 设置文本样式。
设置文本样式
Jupyter Notebook 支持 Markdown,这是一种标记语言,是 HTML 的超集。本教程将介绍一些 Markdown 功能的基础知识。
将新单元格设置为 Markdown,然后将以下文本添加到单元格中:
运行单元时,输出应如下所示:
如果您希望将文本加粗,请使用双下划线或双星号。
在 Markdown 中创建标题也非常简单。您只需要使用不起眼的英镑符号即可。使用的井号越多,标题就越小。 Jupyter Notebook 甚至可以为您预览它:
然后,当您运行该单元格时,您最终会得到一个格式良好的标题:
创建列表
您可以使用破折号、加号或星号创建列表(项目符号)。这是一个例子:
代码和语法突出显示
如果您想插入不希望最终用户实际运行的代码示例,您可以使用 Markdown 来插入它。对于内联代码突出显示,只需用反引号包围代码即可。如果要插入代码块,可以使用三个反引号并指定编程语言:
导出笔记本
当您使用 Jupyter Notebooks 时,您会发现您需要与非技术人员分享您的结果。发生这种情况时,您可以使用nbconvert
Jupyter Notebook 附带的工具可将您的 Notebook 转换或导出为以下格式之一:
超文本标记语言
乳胶
PDF
RevealJS
降价
重构文本
可执行脚本
这nbconvert
工具用途金贾模板 在幕后转换您的笔记本文件(.ipynb
)转换为这些其他格式。
金贾 是为 Python 制作的模板引擎。另请注意nbconvert
还取决于潘多克 和 TeX 能够导出为上述所有格式。如果您没有其中一项或多项,某些导出类型可能无法工作。欲了解更多信息,您应该查看文档 .
如何使用nbconvert
这nbconvert
命令不需要太多参数,这使得学习如何使用它变得更容易。打开终端并导航到包含您要转换的笔记本的文件夹。基本的转换命令如下所示:
$ jupyter nbconvert <input notebook> --to <output format>
用法示例
假设您有一个名为py_examples.ipynb
并且您想将其转换为 PDF。这是您用来执行此操作的命令:
$ jupyter nbconvert py_examples.ipynb --to pdf
当您运行此命令时,您应该会看到一些输出,告诉您有关转换过程的信息。nbconvert
如果有的话,将显示警告和错误。假设一切按计划进行,您现在将拥有py_examples.pdf
文件在你的文件夹中。
其他文件类型的转换过程非常相似。你只需要告诉nbconvert
要转换为什么类型(PDF、Markdown、HTML 等)。
您还可以通过转至导出当前正在运行的笔记本文件 菜单并选择下载为 选项。
此选项允许您以所有格式下载nbconvert
支持。使用菜单的好处是你不需要学习nbconvert
如果你不想的话,根本不可以。不过我建议这样做,因为您可以使用nbconvert
一次导出多个笔记本,这是菜单不支持的。
笔记本扩展
虽然 Jupyter Notebooks 内置了许多功能,但您可以通过扩展添加新功能。 Jupyter 实际上支持四种类型的扩展:
本教程将重点介绍笔记本扩展。
什么是扩展?
笔记本扩展(nbextension
) 是一个 JavaScript 模块,您可以在 Notebook 前端的大多数视图中加载该模块。如果您熟悉 JavaScript,您甚至可以编写自己的扩展。扩展程序可以访问页面的 DOM 和 Jupyter JavaScript API。
我在哪里可以获得扩展?
您可以使用 Google 或搜索 Jupyter Notebook 扩展。实际上有很多。最流行的扩展集之一称为jupyter_contrib_nbextensions ,你可以从中得到GitHub 。这实际上是由 Jupyter 社区提供并安装的扩展的集合pip
.
我该如何安装它们?
大多数 Jupyter Notebook 扩展都可以使用 Python 安装pip
工具。如果您发现无法安装的扩展pip
,那么您可能需要使用以下命令:
$ jupyter nbextension install EXTENSION_NAME
这只会安装扩展,但不会使其处于活动状态。安装扩展后,您需要通过运行以下命令来启用它:
$ jupyter nbextension enable EXTENSION_NAME
您可能需要重新启动 Jupyter Notebook 内核才能看到扩展。
有一个很好的元扩展名为Jupyter NbExtensions 配置器 这对于管理其他扩展来说是值得的。它允许您在 Jupyter Notebook 的用户界面中启用和禁用扩展,并显示所有当前安装的扩展。
结论
Jupyter Notebook 不仅对于学习和教授 Python 等编程语言非常有用,而且对于共享数据也非常有用。
您可以将您的笔记本变成幻灯片或通过 GitHub 在线共享。如果您想共享笔记本而不要求用户安装任何东西,您可以使用活页夹 为了那个原因。
Google 和 Microsoft 都有自己的笔记本版本,您可以使用它们在以下位置创建和共享您的笔记本:谷歌合作实验室 和微软Azure笔记本 分别。您也可以在那里浏览非常有趣的笔记本。
Project Jupyter 最近推出了他们的最新产品,Jupyter实验室 。 JupyterLab 将 Jupyter Notebook 合并到您在浏览器中运行的集成开发类型编辑器中。您可以将 JupyterLab 视为 Jupyter Notebook 的高级版本。除了笔记本之外,JupyterLab 还允许您在浏览器中运行终端、文本编辑器和代码控制台。
与往常一样,最好亲自尝试一个新软件,看看它是否适合您并且值得使用。我鼓励您尝试一下 Jupyter Notebook 或 JupyterLab,看看您的想法!