安装
对于初学者,最简单的方法是安装 Anaconda,因为它自带了 Jupyter Notebook。对于 Anaconda 的使用方法,可参考《致Python初学者们 - Anaconda入门使用指南》。
如果在 conda 环境中,可以使用如下命令安装:
conda install jupyter notebook
或者直接通过 pip 安装:
pip install jupyter notebook
更多的安装说明可参考Jupyter官网。
需要注意的是,对Python来说jupyter使用的是系统默认的Python环境,如果有 Anaconda的话会优先使用 Anaconda环境,如果需要更改Jupyter使用的Python环境,可参考搭建Python jupyter环境
运行
在终端中输入
jupyter notebook
此时你的 Web 浏览器被自动打开,显示文件home目录。通过点击右上角的new
可以创建新文档。
而关闭 notebook 文档可以通过选择文件名前的复选框后,点击Shutdown
按钮实现。如果要关闭整个服务,则在原来的终端中按Control + C
两次。
界面
Notebook 文档是由一系列单元(Cell)构成,主要有两种形式的单元:
代码单元:这里是你编写代码的地方,通过按 Shift + Enter 运行代码,其结果显示在本单元下方。代码单元左边有 In [ ]: 这样的序列标记,方便人们查看代码的执行次序。
Markdown 单元:在这里对文本进行编辑,采用 markdown 的语法规范,可以设置文本格式、插入链接、图片甚至数学公式。同样使用 Shift + Enter 运行 markdown 单元来显示格式化的文本。
类似于 Linux 的 Vim 编辑器,在 notebook 中也有两种模式:
编辑模式:编辑文本和代码。选中单元并按 Enter 键进入编辑模式,此时单元左侧显示绿色竖线。
命令模式:用于执行键盘输入的快捷命令。通过 Esc 键进入命令模式,此时单元左侧显示蓝色竖线。
如果要使用快捷键,首先按 Esc 键进入命令模式,然后按相应的键实现对文档的操作。比如切换成代码单元(Y
)或 markdown 单元(M
),或者在本单元的下方增加一单元(B
)。查看所有快捷命令可以按H。
快捷键
除命令模式与代码模式和单元类型的切换外,常用的快捷键还有:
Control + Enter
: 执行单元格代码Shift + Enter
: 执行单元格代码并且移动到下一个单元格Option + Enter
: 执行单元格代码,新建并移动到下一个单元格Command + S
:保存你的文档,默认以ipynb格式,保存在home目录下D,D
: 删除选中的单元A
: 在上方插入新单元B
: 在下方插入新单元
数学公式编辑
在文本行中插入数学公式,使用一对 符号,比如质能方程$E=mc2$。如果要插入一个数学区块,则使用一对 符 号 , 比 如 质 能 方 程 $ E = m c 2 $ 。 如 果 要 插 入 一 个 数 学 区 块 , 则 使 用 一 对 $ 符号。比如下面公式表示 z=x/y:
$$ z = \frac{x}{y} $$
如何在 notebook 中使用 LaTeX,可参考 A Primer on Using LaTeX in Jupyter Notebooks
幻灯片制作
既然Jupyter Notebook 擅长展示数据分析的过程,除了通过网页形式分享外,当然也可以将其制作成幻灯片的形式。这里有一个幻灯片示例供参考,其制作风格简洁明晰。
那么如何用 Jupyter Notebook 制作幻灯片呢?首先在 notebook 的菜单栏选择View > Cell Toolbar > Slideshow
,这时在文档的每个单元右上角显示了 Slide Type 的选项。通过设置不同的类型,来控制幻灯片的格式。有如下5中类型:
- Slide:主页面,通过按左右方向键进行切换。
- Sub-Slide:副页面,通过按上下方向键进行切换。
- Fragment:一开始是隐藏的,按空格键或方向键后显示,实现动态效果。
- Skip:在幻灯片中不显示的单元。
- Notes:作为演讲者的备忘笔记,也不在幻灯片中显示。
编写好幻灯片形式的 notebook后使用nbconvert
进行演示,在终端输入:
jupyter nbconvert notebook.ipynb --to slides --post serve
浏览器会自动打开相应的幻灯片。
魔术关键字
魔术关键字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它们运行在代码单元中,以 % 或者 %% 开头,前者控制一行,后者控制整个单元。
比如,要将本地Python代码添加到当前cell中,则可以使用%load file.py
;要运行本地Python代码,则可以使用%run file.py
;要得到代码运行的时间,则可以使用 %timeit
;如果要在文档中显示 matplotlib 包生成的图形,则使用 % matplotlib inline
;如果要做代码调试,则使用%pdb
。
更详细的清单请参考 Built-in magic commands