Jupyter Notebooks使您可以将代码,注释,多媒体和可视化组合到一个交互式文档中,该文档可以共享,重复使用和重新处理。
Jupyter Notebook最初是为用Python,R和Julia编写的数据科学应用程序而开发的,它以各种方式对各种项目都有用。 您可以使用Jupyter Notebook与第三方共享Python代码及其输出,通过实时交互反馈运行代码,或者系统地跟踪和记录工作进度。
在本文中,我们将逐步设置针对Python的Jupyter Notebook,使用Jupyter的各种功能,并与其他人共享结果,无论他们是否安装了Jupyter。
Jupyter Notebook安装和设置
创建和使用Jupyter Notebook for Python的最简单方法是设置 Python 的Anaconda发行版的实例 。 Anaconda的创建是为了使其易于使用Python及其庞大的数据科学工具,并且包括Jupyter Notebook软件作为标准发行版。
除了使Jupyter Notebooks易于启动和使用之外,Anaconda默认还提供您可能会与Jupyter结合使用的许多其他软件包:Pandas,NumPy,TensorFlow,Matplotlib等。 Anaconda还使您更轻松地完成日常工作,例如管理虚拟环境,使Python软件包保持最新状态,以及为您正在使用的所有内容找到良好的文档。
使用Anaconda的一个潜在缺点:如果您已经建立了庞大的Python工作流程,则必须将工作迁移到新的Anaconda实例。 如果您不习惯使用原始设置,从长远来看,这是更好的选择。 但是,如果您需要坚持使用现有的环境,则需要手动安装Jupyter Notebook软件包。
![jupyter 00](https://i-blog.csdnimg.cn/blog_migrate/6cc1c162537bfa40028381aba150313a.png)
Python的Anaconda发行版预装了Jupyter Notebook。 运行它就像单击图标一样简单。
好消息是手动Jupyter Notebook设置也很容易。 使用pip
将Jupyter添加到Python安装中:
pip install jupyter
如果您使用的是Anaconda,则“ Anaconda”主导航器界面的“主页”面板中有Jupyter Notebook界面的启动器。 单击它以启动Jupyter服务器的实例,系统的默认Web浏览器将启动以访问它。
如果您已通过pip
手动安装了Jupyter,则可以通过在命令行中键入jupyter notebook
来启动它。 请注意,如果您在Python虚拟环境中使用Jupyter(如果您未使用Anaconda,则是个好主意),则需要在运行该命令之前激活该环境。
Jupyter Notebook基础知识
首次启动Jupyter时,您会看到一个文件浏览器,通常用于当前用户主目录中的文件。 您可以使用此浏览器导航到现有笔记本,或使用文件列表右上方的“新建”下拉菜单启动新笔记本。 选择“新建/笔记本:Python 3”以执行此操作。
![jupyter 02](https://i-blog.csdnimg.cn/blog_migrate/ef76afcfb3518d33fe013ed5bdae6734.png)
Jupyter的文件浏览器。 标有绿色图标的笔记本电脑已经启动并正在运行。
Jupyter Notebook具有两个基本组件:内核和单元。
- 内核是笔记本中使用的编程语言的运行时的运行时实例。 在我们的例子中,Jupyter是一个正在运行的Python实例(即IPython内核),具有自己的名称空间和内存分配。 笔记本一次只能连接一个内核,但是如果需要,可以在多个内核之间切换。
- 单元格类似于电子表格中的单元格。 每个单元格包含代码,自由格式的文本或其他内容。
您可以在任何单元中开始运行代码,并且可以单独运行每个单元(甚至无序运行!)。 您可以从给定点向前运行单元,也可以从顶部开始运行,并以干净的方式运行所有内容。 对单元格进行评估时,将对它们进行编号以指示其评估顺序。 除非您另外特别告知Jupyter,否则笔记本中使用的代码的状态(其全局变量等)将保留。 可以通过工具栏图标来剪切,复制,粘贴和重新排列单元格。
![jupyter 01](https://i-blog.csdnimg.cn/blog_migrate/85456d85a10a306e7d6b03a65a0adf10.png)
Jupyter笔记本的简单示例。 在底部看到的图形是由In [9]:
标记为部分的代码生成的。
笔记本中最常用的命令可在下拉菜单或单元格区域上方的可单击工具栏中找到。 探索所有可用内容的一种好方法是单击工具栏中的键盘图标。 这将打开命令面板,您可以在其中简单地键入命令来召唤许多命令。
![jupyter 04](https://i-blog.csdnimg.cn/blog_migrate/030f0a34718e58cdcd558f2d787d1299.png)
Jupyter Notebook命令面板。 键入以搜索任何可用的命令。
摆脱笔记本工作困扰的一种好方法是与现有笔记本一起玩。 Jupyter的创建者策划了一个涵盖了广泛应用程序的笔记本画廊 ,并且还展示了笔记本中常用功能的许多示例,例如,绘制图形或从数据生成视觉效果。
Jupyter Notebook单元格格式
单元格可以包含四种内容:
- Python代码。 任何一个单元格可以包含的代码量没有实际限制,但是出于理解的考虑,最好将较长的代码段分成单独的块。 您无需剪切和粘贴:您可以通过按
Ctrl + Shift + -
来拆分笔记本单元格。 - 降价。 将Markdown格式的文本用于批注,注释,嵌入式图像以及不是可执行代码的其他元素。 Markdown单元甚至可以包含附加图像,这些图像随笔记本一起保存。 使用笔记本的“编辑| 插入图片”菜单选项以添加图片。
- 标题。 传统Jupyter笔记本使用特殊的“标题”单元格将笔记本划分为多个部分。 新笔记本不再使用此功能。 请改用Markdown标题。
- 原始NBConvert。 标有“ Raw NBConvert”的单元格保持原样,Jupyter不会对其进行处理或转换。 如果要插入需要由第三方加载项处理的文本(例如用于数学公式的LaTex),这将很有用。
带有Python代码的单元格可以加%
或%%
前缀以创建魔术命令 。 魔术命令特定于Jupyter中运行的Python内核,通常控制内核与笔记本电脑和周围系统的接口。
![jupyter 03](https://i-blog.csdnimg.cn/blog_migrate/1ce0535d9ef3896f9be9719ea2583b00.png)
Jupyter Notebook中的不同种类的细胞。 从顶部开始:Markdown格式的单元格,Python代码单元格和原始的NBConvert单元格。
运行Jupyter笔记本
Jupyter Notebook中的代码可以一次全部运行,也可以增量运行。 当代码单元格处于焦点位置时,单击笔记本计算机命令栏中的“运行”按钮以执行当前单元格的内容并前进到下一个单元格。 该过程类似于使用调试器“单步执行”正在运行的程序,除了在这里您一次只需要一个单元而不是每次只需要一行代码 。
请注意,只要您运行一个或多个单元,只要它们处于活动状态,这些单元的状态就会被内核保留。 例如,如果您import
一个模块,则该模块将保持加载在内核中,因此任何将来的import
语句都将像常规Python脚本中该import
语句的第二个实例一样起作用。
如果要重新启动内核并重置笔记本的上下文,但要保留到目前为止在笔记本中显示的结果,请单击“重新启动”按钮(循环箭头图标)。 如果要使用新启动的内核从顶部运行整个笔记本,要擦除笔记本中显示的所有先前结果,请单击双箭头“运行”按钮。
如果要向Jupyter Notebook添加更多的交互性,一种方法是使用ipywidgets
附加组件。 使用ipywidgets
,单元格可以生成基本的GUI控件,例如滑块或输入框。 用户从这些控件提供的值可以在笔记本计算机的其他单元格中使用。
![jupyter 05](https://i-blog.csdnimg.cn/blog_migrate/3c96e9c6f6cf5d5e594bd6abd99596d2.png)
可以通过ipywidgets库将交互式控件插入到笔记本中。
保存和加载Jupyter笔记本
Jupyter笔记本可以保存和恢复以备将来使用。 保存Jupyter笔记本时,将保存每个单元格的文本内容以及上次运行时每个单元格的输出。
但是, 不会保存用于运行笔记本的内核状态(运行笔记本时创建的变量和数据结构的状态)。 通过使用Python中的第三方dill
模块可以保存和恢复内核状态,但是Jupyter不直接支持保存内核状态。
Jupyter Notebook还提供了一种用于还原最近一组更改的简单机制。 保存笔记本时,将从上一个保存的副本中创建一个“检查点”,然后可以通过选择“文件|复制”来恢复到该检查点。 恢复到检查点。” 对于更复杂的内容,请在存放笔记本的目录上使用实际的版本控制系统,例如Git 。
From: https://www.infoworld.com/article/3336511/python-tutorial-get-started-with-jupyter-notebook.html