Jupyter Notebook 笔记

Jupyter Notebook 教程

介绍

Jupyter Notebook 是一个能运行 Python 代码的 Web 应用程序,它是目前进行机器学习实践的主流工具。Jupyter Notebook 已经成为现代处理数据的必备工具。从数据清理、数据可视化、数据分析,再到后面的建立机器学习或深度学习模型,都可以在 Jupyter Notebook 完成。同时,Jupyter Notebook 可以保留代码运行后的结果,方便内容的传播,以及回顾做过的工作。

组成结构

单元格

内容结构中最基本的组成单位被称之为单元格,一节完整的实验课程由若干个单元格按顺序构成。如下图所示,当你使用鼠标在课程界面【单击】时,就会选中相应的单元格,被处于选中状态的单元格的左侧会出现一条蓝色的竖线。

单元格的两种模式

每一个单元格会有两种模式,分别是 Markdown(文本) 和 Code(代码)。

如何判断一个单元格是 Markdown 单元格,还是 Code 单元格?首先,选中之后的单元格右上角会出现一个菜单栏,绿色高亮的按钮就代表当前单元格的模式。

除此之外,更简单的方法就是观察单元格的背景色。如下图所示, Code 单元格的背景色为黑色,而 Markdown 单元格的背景则为白色。

运行代码

你可能会有疑问,那就是自己在哪里书写练习代码并执行呢?当前,这一切都是在 Code 单元格中完成。如下图所示,当你在 Code 单元格中书写 print(‘hello, world!’) 时,点击左侧的运行按钮 ▶,相应的代码就会立即执行,并在单元格的下方显示输出内容。

image

动手练习

# 点击左侧的运行按钮 ▶ 运行代码

print(‘hello world!’)

当你需要执行一个单元格时,也可以通过快捷键 Shift + Enter 来运行。使用快捷键的好处是你的双手不需要离开键盘。

# 选中单元格,并按 Shift + Enter

print(‘hello world!’)

你所看到的实验文档内容,都书写在 Markdown 单元格中。如果你一不小心双击了相应单元格进入到编辑状态。不用担心,选中相应单元格,并同样使用快捷键 Shift + Enter 执行,就可以恢复到先前的状态。

动手题 双击我,然后再按 Shift + Enter

你在实验环境中输入的字符和代码都是自动保存的。只要当前环境没有终止(点击右上角的停止按钮,或环境超时自动终止),那就无需担心刷新页面后造成自己动手练习代码出现丢失。

单元格执行顺序

无论是 Markdown 单元格,还是 Code 单元格,它们在课程中都是按照从上到下的顺序依次执行的。后面的单元格需要等待前面的单元格执行完成后,才能继续执行。执行完成的单元格左侧会出现 In [序号]的标志,例如:

image

为了方便,在实验楼 Notebook 中,print() 打印操作并不是必须的。例如上方的单元格, a + b 就能输出结果。

代码补全

当我们在写代码的时候,代码自动补全可以极大地节省时间。而在实验楼 Notebook 中,可以通过 Tab 键激活代码补全功能。

函数使用建议

对于一个陌生的函数不够了解,那么可以通过 shift + tab 快捷键查看使用建议。

# 运行导入 random 模块

import random

# 鼠标点击至 random.randint 并按 shift + tab 查看使用建议

random.randint

你应该能看到如下的函数介绍气泡内容:

Signature: random.randint(a, b)

Docstring:

Return random integer in range [a, b], including both end points.

单元格的执行状态

对于复杂度高的代码,往往会意味着更长的执行等待时间。在实验楼 Notebook 中,当一个单元格处于执行状态时,单元格前面会出现 In [*] 符号,只有执行完成的单元格, [] 中的 * 才会变成相应的 序号。

除此之外,你可以通过页面右上角的 Kernel 状态指示器判断内核占用情况。如果 Python 字符右边出现了实心圆圈 ◉,代表内核处于占有状态。而空心圆圈 ◯ 则代表内核处于空闲状态。当然,也可能出现链接断开的符号,那就代表着内核已经断开链接,你可能需要刷新页面或重启实验环境。当然,实验楼会尽力让你避免遇到内核断开的状态。

重启内核

有些时候,当你在运行复杂的代码时,可能会造成实验环境资源占用大而 Notebook 出现「假死」的现象。在遇到这种情况时,你可能不希望重新关闭再打开实验,那么可以执行「重启 Notebook 内核」操作。

重启内核的按钮在环境的顶部,点击 <button></button> 样式按钮后会弹出确认对话框,点击 Restart 即可。

动手题 现在执行重启内核操作试一试,然后再运行下方单元格。

a

如果重启完内核后,执行上方单元格会报错 NameError。原因在于重启内核后之前全部的单元格运行状态都会重置,即上文中我们赋值过的变量 a 又会回到未赋值状态。现在你应该明白重启内核的作用和影响了吧。

强制终止

有的时候,如果代码运行时间过长,或者陷入死循环,我们会想到强制终止单元格的运行状态。此时,顶部的 停止键就发挥作用了。

快捷键

为了提高 Jupyter Notebook 的使用效率,其提供了一系列快捷键,我们挑选了常用的几个总结如下:

H:查看所有快捷键。

S:保存当前 Notebook 内容。

P:调出 Notebook 命令栏。

B:在当前单元格下方新建空白单元格。

M:将单元格格式转换为 Markdown。

Y:将单元格格式转换为 Code。

连续按 D+D:删除当前单元格。(慎用,推荐使用 X 剪切单元格代替,因为其可以起到删除效果,且删错了还可以粘贴回来)

连续按 I+I+I:强制中止内核(当某个单元格执行时间较长或卡住时,可以强行中止,中止后前序单元格状态依旧保留,非常好用。)

Shift + Enter:运行当前单元格内容。(当 Markdown 单元格处于编辑状态时,运行即可复原)

请注意,所有快捷键触发式,需保证单元格处于选中状态,而非编辑状态。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 × 2 =