Jupyter Notebook 入门教程:从零开始学使用
引言:为什么选择 Jupyter Notebook?
在数据科学、机器学习、教育、研究甚至是日常的代码实验中,Jupyter Notebook 已经成为一个不可或缺的工具。它不仅仅是一个代码编辑器,更是一个强大的交互式计算环境,能够将代码、文本(包括数学方程、图片、富媒体)、计算输出、可视化结果等内容全部集成在一个可共享的文档中。
想象一下,你正在分析数据,你需要编写代码来清洗数据、进行统计分析,然后生成图表来展示结果。同时,你还需要详细记录你的分析过程、解释你的思路,并可能包含一些理论背景或结论。如果使用传统的编程方式,你可能需要一个代码文件、一个文档文件(比如Word或Markdown),以及单独生成的图片文件。这使得整个过程分散,难以追溯和分享。
Jupyter Notebook 应运而生,完美地解决了这个问题。它提供了一个基于Web的交互式环境,让你能够在“笔记本”中组织你的工作。每一个笔记本都由一系列的“单元格”(Cells)组成,这些单元格可以是:
- 代码单元格 (Code Cells): 你可以在这里编写和执行代码(默认为 Python,但支持多种语言)。代码执行后,结果会直接显示在单元格下方。
- Markdown 单元格 (Markdown Cells): 你可以使用 Markdown 标记语言编写格式化的文本,包括标题、段落、列表、链接、图片,甚至数学公式(使用 LaTeX 语法)。这使得你可以在代码旁边清晰地解释你的工作流程、想法或结论。
这种结合的强大之处在于:
- 交互性: 你可以逐步执行代码,即时看到结果,非常适合探索性编程和调试。
- 文档化: 代码和解释紧密结合,形成一个自包含的文档,便于理解和分享。
- 可视化: 生成的图表和图像直接嵌入在笔记本中,无需单独保存和引用。
- 易于分享: 整个笔记本可以保存为一个
.ipynb
文件,方便与他人分享或发布到GitHub等平台。 - 支持多种语言: 虽然最初与 Python 紧密相关(IPython 项目),但通过安装不同的“内核”(Kernels),Jupyter Notebook 可以支持 R、Julia、Scala 等几十种编程语言。
对于初学者来说,Jupyter Notebook 提供了一个友好且直观的学习环境。你可以专注于编写和理解代码,而不是花费大量时间配置复杂的开发环境。无论你是想学习编程、进行数据分析、探索算法,还是仅仅想有一个方便的草稿本,Jupyter Notebook 都是一个极佳的选择。
那么,如何开始使用它呢?本教程将从零开始,一步步带你走进 Jupyter Notebook 的世界。
第一章:安装 Jupyter Notebook
使用 Jupyter Notebook 的第一步是将其安装到你的计算机上。最推荐且最简单的方法是使用 Anaconda 发行版。
1.1 为什么推荐 Anaconda?
Anaconda 是一个流行的 Python/R 数据科学平台,它包含了 Python 解释器、conda 包管理器、以及大量预装的常用科学计算库(如 NumPy, Pandas, Matplotlib, Scikit-learn 等)和工具,其中就包括 Jupyter Notebook。
使用 Anaconda 的好处是:
* 一站式安装: 大多数你需要的数据科学工具和库都一次性安装好了,避免了单独安装各种依赖的麻烦。
* 环境管理: conda 包管理器可以轻松创建和管理独立的 Python 环境,避免不同项目之间的库版本冲突。
* 跨平台: 支持 Windows、macOS 和 Linux。
1.2 安装 Anaconda
请按照以下步骤安装 Anaconda:
- 下载 Anaconda 安装包: 访问 Anaconda 官方网站 (https://www.anaconda.com/products/distribution)。根据你的操作系统(Windows, macOS, Linux)选择对应的 Python 3.x 版本图形化安装程序下载。推荐下载最新版本。
- 运行安装程序:
- Windows: 双击下载的
.exe
文件。按照安装向导的提示进行。在安装选项中,建议勾选 “Add Anaconda to my PATH environment variable” (将 Anaconda 添加到我的 PATH 环境变量),但这需要管理员权限,并且可能会影响系统中其他 Python 安装。如果不想修改 PATH,或者没有管理员权限,请在安装完成后通过 Anaconda Navigator 或 Anaconda Prompt 来启动 Jupyter Notebook。建议勾选 “Register Anaconda as my default Python 3.x” (将 Anaconda 注册为我的默认 Python)。选择安装路径,建议使用默认路径,除非你清楚自己在做什么。 - macOS: 双击下载的
.pkg
文件。按照安装向导的提示进行。同意许可协议,选择安装类型(为当前用户安装即可),选择安装位置。安装程序通常会自动将 Anaconda 的路径添加到你的 shell 配置文件中(如.bash_profile
,.zshrc
等)。 - Linux: 打开终端,使用
bash
命令执行下载的.sh
文件。例如:bash Anaconda3-xxxx-Linux-x86_64.sh
。按照终端提示进行,按 Enter 键阅读许可协议,输入yes
同意,指定安装位置(默认在用户主目录下),然后同意运行conda init
初始化 shell(这会将 Anaconda 添加到你的 PATH)。
- Windows: 双击下载的
- 验证安装: 安装完成后,打开一个新的终端或命令提示符。输入以下命令并按 Enter:
bash
conda --version
python --version
jupyter notebook --version
如果这些命令都能正常执行并显示版本信息,说明 Anaconda 和 Jupyter Notebook 安装成功。
1.3 使用 Pip 安装 (可选)
如果你已经安装了 Python,并且不想安装完整的 Anaconda 发行版,可以使用 pip 包管理器来安装 Jupyter Notebook。
打开终端或命令提示符,输入以下命令并按 Enter:
bash
pip install notebook
这会安装 Jupyter Notebook 及其必要的依赖。
验证安装:
bash
jupyter notebook --version
无论使用哪种方式安装,一旦安装成功,你就可以开始使用 Jupyter Notebook 了。
第二章:启动 Jupyter Notebook
安装完成后,如何打开并开始使用 Jupyter Notebook 呢?
Jupyter Notebook 是一个基于Web的服务,你在本地计算机上启动一个服务器进程,然后通过浏览器访问这个服务器来使用它。
2.1 通过终端/命令提示符启动
这是最常用和推荐的启动方式:
- 打开终端或命令提示符:
- Windows: 搜索并打开 “Anaconda Prompt” (如果你安装了 Anaconda) 或 “命令提示符” / “PowerShell”。
- macOS / Linux: 打开终端应用程序。
- 导航到工作目录 (可选但推荐): 启动 Jupyter Notebook 时,它会默认在你启动命令所在的目录下查找和创建文件。因此,建议先使用
cd
命令切换到你想要存放 Notebook 文件的目录。例如:
bash
cd Documents/MyProjects/JupyterNotebooks
如果你不切换目录,它会默认在你启动终端时的当前目录(通常是用户主目录)启动。 - 输入启动命令: 在终端中输入以下命令并按 Enter:
bash
jupyter notebook - 观察输出: 终端会显示一些信息,包括服务器启动的日志和访问地址 (URL)。
[I 12:34:56.789 NotebookApp] Serving notebooks from local directory: /path/to/your/directory
[I 12:34:56.789 NotebookApp] The Jupyter Notebook is running at:
[I 12:34:56.789 NotebookApp] http://localhost:8888/?token=your_long_token
[I 12:34:56.789 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). - 浏览器自动打开: 通常情况下,你的默认浏览器会自动打开一个新标签页,并加载 Jupyter Notebook 的文件浏览器界面,地址就是终端中显示的那个 URL (通常是
http://localhost:8888/
). - 如果浏览器没有自动打开: 手动复制终端中显示的 URL(包括
?token=...
部分),粘贴到你的浏览器地址栏中并访问。 - 不要关闭终端: 启动 Jupyter Notebook 的终端窗口必须保持打开状态。关闭这个窗口将停止 Jupyter 服务器,你就无法再使用 Notebook 了。要停止服务器,在终端中按
Ctrl + C
,然后输入y
并按 Enter 确认关闭。
2.2 通过 Anaconda Navigator 启动 (仅限 Anaconda)
如果你安装了 Anaconda,也可以使用图形界面的 Anaconda Navigator 来启动 Jupyter Notebook:
- 打开 Anaconda Navigator: 在你的应用程序列表中找到并启动 “Anaconda Navigator”。
- 找到 Jupyter Notebook: 在 Navigator 界面中,你会看到各种应用程序的图标。找到 Jupyter Notebook 的图标。
- 点击 Launch: 点击 Jupyter Notebook 图标下方的 “Launch” 按钮。
- 浏览器自动打开: 同样,这会在浏览器中打开 Jupyter Notebook 的文件浏览器界面。
这种方法对于不习惯使用终端的用户来说更友好,但通过终端启动可以让你更灵活地控制启动目录。
第三章:认识 Jupyter Notebook 界面
启动 Jupyter Notebook 后,你的浏览器会打开一个页面。这个页面根据你的操作,可能是文件浏览器界面,也可能是笔记本编辑界面。
3.1 文件浏览器界面
当你第一次启动 Jupyter Notebook 时,或者当你点击当前 Notebook 顶部的 Jupyter Logo 时,会进入文件浏览器界面。
这个界面显示了你启动 Jupyter Notebook 命令时所在的目录下的文件和文件夹列表。它的功能类似于一个简单的文件管理器。
- 导航: 你可以点击文件夹名称进入子目录,点击顶部的路径面包屑导航返回上级目录。
- 文件列表: 列出了当前目录下的文件和文件夹。
.ipynb
后缀的文件是 Jupyter Notebook 文件。- 其他文件类型(如
.py
,.txt
,.csv
等)也会显示。
- 右上角按钮:
- Upload (上传): 可以将本地文件上传到当前目录。
- New (新建): 这是创建新 Notebook、文本文件、文件夹或启动终端的地方。
- 点击 “New”,然后选择你想要使用的内核(比如 “Python 3″)来创建一个新的 Notebook。
- 你也可以选择 “Folder” 来新建一个文件夹整理文件。
- “Text File” 创建一个普通的文本文件。
- “Terminal” 在浏览器中打开一个终端界面(非常方便!)。
- 文件操作: 勾选文件或文件夹左侧的复选框,顶部会出现一些操作按钮:
- Duplicate (复制): 复制选中的文件/文件夹。
- Rename (重命名): 重命名选中的文件/文件夹。
- Move (移动): 移动选中的文件/文件夹到其他位置。
- Download (下载): 下载选中的文件。
- Shutdown (关闭,仅对 Notebook 有效): 关闭正在运行的 Notebook 内核。运行中的 Notebook 文件图标通常是绿色的,关闭后变灰色。关闭内核可以释放资源。
- Trash (删除): 删除选中的文件/文件夹。
- Running (运行中): 点击右上角的 “Running” 标签页,可以看到当前正在运行的 Notebook 和终端会话。这有助于你管理资源,及时关闭不再需要的会话。
3.2 笔记本编辑界面
当你新建一个 Notebook 或打开一个现有的 .ipynb
文件时,会进入笔记本编辑界面。这是你编写代码和文档的主要工作区域。
让我们看看编辑界面的主要组成部分:
- 标题栏: 页面顶部显示 Notebook 的名称(默认为 “Untitled”)。点击标题可以重命名 Notebook。旁边显示了当前内核的状态(一个小圆圈:空心表示空闲 Idle,实心表示忙碌 Busy)。
- 菜单栏: 位于标题栏下方,包含多个下拉菜单:
- File (文件): 新建 Notebook、打开、复制、重命名、保存、检查点 (Save and Checkpoint)、下载为不同格式 (Download as…)、关闭和停止 (Close and Halt)。
- Edit (编辑): 剪切、复制、粘贴、删除单元格,分割/合并单元格,移动单元格等。
- View (视图): 切换显示工具栏、行号等。
- Insert (插入): 在上方或下方插入新单元格。
- Cell (单元格): 运行单元格、运行所有单元格、改变单元格类型、管理单元格输出等。
- Kernel (内核): 中断、重启、重新连接、关闭内核,改变内核等。这是管理代码执行引擎的地方。
- Widgets (控件): 与交互式控件相关的功能。
- Help (帮助): 提供 Jupyter, Python 库等的参考文档链接。
- 工具栏: 位于菜单栏下方,提供常用操作的快捷按钮。从左到右通常有:
- Save (保存)
- Insert Cell Below (在下方插入单元格)
- Cut Cell (剪切单元格)
- Copy Cell (复制单元格)
- Paste Cell (粘贴单元格)
- Move Cell Up (上移单元格)
- Move Cell Down (下移单元格)
- Run (运行选中的单元格)
- Interrupt Kernel (中断内核 – 停止当前正在运行的代码)
- Restart Kernel (重启内核 – 清除所有变量和状态,重新开始)
- Restart Kernel and Run All Cells (重启内核并运行所有单元格)
- Cell Type (单元格类型下拉菜单 – Code, Markdown, Raw NBConvert)
- Command Palette (命令面板 – 查找并执行各种命令,快捷键
Ctrl+Shift+P
或Cmd+Shift+P
) - Trusted/Untrusted (信任状态 – 涉及 Notebook 安全性,通常新建的 Notebook 是受信任的)
- 单元格区域: 这是页面的主体部分,由一系列独立的单元格构成。每个单元格都有一个输入区域和一个输出区域(对于代码单元格而言)。选中单元格时,其左侧或右侧会有一个边框。
- 单元格模式 (Cell Modes): 这是理解 Notebook 操作的关键。一个单元格可以处于两种模式:
- 编辑模式 (Edit Mode): 当你点击单元格内部开始输入文本或代码时进入。此时单元格边框通常是绿色的,左侧有一条竖线,并且光标在闪烁。在此模式下,你可以编辑单元格内容。
- 命令模式 (Command Mode): 当你退出编辑单元格(例如按
Esc
键)时进入。此时单元格边框通常是蓝色的,没有光标闪烁。在此模式下,你可以对整个单元格进行操作(如运行、复制、粘贴、删除、改变类型等),而不是编辑其内容。很多快捷键只在命令模式下有效。
- 输入区域: 代码单元格在这里编写代码,Markdown 单元格在这里编写 Markdown 文本。
- 输出区域: 代码单元格执行后的输出(文本、变量值、图表、错误信息等)会显示在这里。Markdown 单元格执行后,这里会显示渲染后的格式化文本。
- 单元格模式 (Cell Modes): 这是理解 Notebook 操作的关键。一个单元格可以处于两种模式:
了解了这些界面元素,你就可以开始创建和编辑你的第一个 Notebook 了。
第四章:核心概念:单元格 (Cells)
正如前面提到的,单元格是 Jupyter Notebook 的基本组成单位。掌握如何使用不同类型的单元格是使用 Notebook 的关键。主要有两种类型的单元格:代码单元格和 Markdown 单元格。
4.1 代码单元格 (Code Cells)
代码单元格是你编写和执行代码的地方。
- 创建: 默认新建的单元格就是代码单元格。你也可以选中一个单元格后,在命令模式下按
B
(在下方插入) 或A
(在上方插入) 创建新的代码单元格。或者使用菜单栏/工具栏的插入按钮。 - 标识: 代码单元格的输入区域左侧通常有
In [ ]:
标记。In
表示 Input,括号中的数字表示这是第几次执行该单元格(按执行顺序编号)。如果括号是空的In []:
,说明该单元格还没有被执行过。 - 编写代码: 在输入区域输入你的代码。例如,输入
print("Hello, Jupyter!")
或进行一些计算。 - 执行代码: 运行单元格有几种方式:
- 点击工具栏的 Run 按钮。
- 使用快捷键
Shift + Enter
: 运行当前单元格,并在下方插入一个新单元格(如果当前不是最后一个单元格,则移动到下一个单元格)。这是最常用的方式,因为它允许你连续工作。 - 使用快捷键
Ctrl + Enter
: 运行当前单元格,但不移动光标或插入新单元格。适合重复执行同一个单元格进行调试。 - 使用快捷键
Alt + Enter
: 运行当前单元格,并在下方强制插入一个新单元格。
- 查看输出: 代码执行后,其输出会立即显示在单元格下方,标记为
Out [n]:
(n 是执行顺序的数字)。输出可以是打印的文本、表达式的返回值、图表等。如果代码执行出错,错误信息也会显示在这里。 - 内核状态: 当代码正在运行时,内核状态指示器会变成实心圆。输入区域的
In [ ]:
括号内会显示*
,例如In [*]:
。代码运行完毕后,指示器变空心,*
变成该单元格的执行序号。
示例代码单元格:
“`python
这是一个代码单元格
name = “Jupyter”
message = f”Hello, {name}!”
print(message)
result = 2 + 2 * 3
print(f”计算结果: {result}”)
“`
运行这个单元格,你会看到如下输出:
Hello, Jupyter!
计算结果: 8
4.2 Markdown 单元格 (Markdown Cells)
Markdown 单元格用于编写格式化文本,例如标题、段落、列表、代码块、链接、图片等,以便为你的代码和分析过程提供解释和说明。
- 创建: 选中一个单元格,在命令模式下按
M
,或者从工具栏的单元格类型下拉菜单中选择 “Markdown”。 - 编写 Markdown: 在输入区域输入 Markdown 语法文本。
- 渲染文本: 运行 Markdown 单元格(与运行代码单元格方式相同,
Shift+Enter
或Ctrl+Enter
)。运行后,输入区域会隐藏,输出区域显示渲染后的格式化文本。 - 重新编辑: 双击已渲染的 Markdown 单元格可以重新进入编辑模式。
常用 Markdown 语法示例:
“`markdown
一级标题
二级标题
这是一个段落。你可以在这里写下你的想法、解释你的代码。
粗体文本 和 斜体文本。
可以使用列表:
– 项目 A
– 项目 B
– 子项目 B1
有序列表:
1. 第一步
2. 第二步
插入链接:
访问 Jupyter 官网
插入图片 (使用相对路径或URL):
行内代码 x = 10
代码块:
python
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
数学公式 (LaTeX 语法):
质能方程:$E=mc^2$
更复杂的公式:$$ \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2} $$
“`
运行这个 Markdown 单元格,它会渲染成带有格式的文本。
4.3 切换单元格类型
你可以随时改变单元格的类型。
- 在命令模式下:
- 选中单元格,按
M
键切换到 Markdown。 - 选中单元格,按
Y
键切换到 Code。
- 选中单元格,按
- 使用工具栏: 选中单元格,从工具栏的下拉菜单中选择 “Code”, “Markdown”, 或 “Raw NBConvert” (Raw NBConvert 用于高级用途,通常无需关注)。
什么时候使用哪种单元格?
- 代码单元格: 用于所有需要计算机执行的任务:数据加载、清洗、分析、建模、计算、生成图表等。
- Markdown 单元格: 用于所有不需要执行的任务:标题、章节分隔、过程解释、结论、引用、嵌入图片说明等。
良好的 Notebook 实践是代码和 Markdown 单元格交错使用,使得整个文档既包含了可执行的代码,又有清晰的解释,方便自己日后回顾或他人理解。
第五章:管理你的 Notebook 和单元格
在使用 Jupyter Notebook 时,你需要进行一些基本的管理操作,比如创建、保存、重命名 Notebook,以及对单元格进行添加、删除、复制、移动等。
5.1 创建、保存和重命名 Notebook
- 新建:
- 在文件浏览器界面,点击右上角的 “New” 按钮。
- 在下拉菜单中选择你想要的内核(例如 “Python 3″)。
- 一个新标签页会打开,里面是一个空白的 Notebook。
- 保存:
- Jupyter Notebook 会自动保存你的工作,但最好还是手动保存。
- 点击工具栏的软盘图标 (Save and Checkpoint)。
- 使用菜单栏:
File
->Save and Checkpoint
。 - 使用快捷键:在命令模式下按
S
,或者在编辑模式下按Ctrl + S
(或Cmd + S
)。 - 检查点 (Checkpoint): 检查点是 Notebook 的一个快照。你可以随时回滚到上一个检查点。
File
->Revert to Checkpoint
。这就像一个简单的版本控制。
- 重命名:
- 新建的 Notebook 默认名称是 “Untitled”。
- 点击 Notebook 顶部的标题(例如 “Untitled”)。
- 在弹出的对话框中输入新的名称,然后点击 “Rename”。
5.2 单元格的基本操作
这些操作通常在命令模式下通过快捷键或菜单/工具栏完成。
- 选中单元格: 在命令模式下,使用键盘的上下箭头键可以在单元格之间移动并选中它们(选中的单元格有蓝色边框)。点击单元格的左侧空白区域也可以选中它。
- 进入编辑模式: 选中单元格后,按
Enter
键。 - 退出编辑模式: 在编辑模式下,按
Esc
键回到命令模式。 - 插入单元格:
- 在命令模式下:
- 按
A
(Above) 在当前选中单元格的上方插入一个新的代码单元格。 - 按
B
(Below) 在当前选中单元格的下方插入一个新的代码单元格。
- 按
- 使用菜单栏:
Insert
->Insert Cell Above
或Insert Cell Below
。 - 使用工具栏:点击加号 (+) 图标,默认在下方插入。
- 在命令模式下:
- 删除单元格:
- 在命令模式下:选中单元格,快速按两次
D
键 (DD
)。 - 使用菜单栏:
Edit
->Delete Cells
。 - 使用工具栏:点击剪刀图标右边的删除按钮 (通常是删除图标)。
- 在命令模式下:选中单元格,快速按两次
- 撤销删除: 在命令模式下,按
Z
键。 - 剪切、复制和粘贴单元格:
- 在命令模式下:
- 选中单元格,按
X
(Cut) 剪切。 - 选中单元格,按
C
(Copy) 复制。 - 按
V
(Paste below) 在当前选中单元格的下方粘贴。 - 按
Shift + V
(Paste above) 在当前选中单元格的上方粘贴。
- 选中单元格,按
- 使用菜单栏或工具栏的对应图标。
- 在命令模式下:
- 移动单元格:
- 在命令模式下:选中单元格,按
上箭头
旁边的按钮或Ctrl/Cmd + Shift + Up/Down
(某些配置下) 或查看命令面板。 - 使用工具栏的上下箭头图标。
- 在命令模式下:选中单元格,按
- 分割单元格: 当你需要在代码单元格中间插入解释文本时很有用。选中单元格,将光标放在你想分割的位置(进入编辑模式),然后使用菜单栏
Edit
->Split Cell
。或者在命令模式下,选中单元格,将光标放在要分割的位置(进入编辑模式),按Ctrl+Shift+-
。 - 合并单元格: 选中多个相邻的单元格(在命令模式下,按住
Shift
并使用上下箭头选择,或者点击第一个单元格然后按住Shift
点击最后一个单元格),然后使用菜单栏Edit
->Merge Cell Above
或Merge Cell Below
。通常合并选中的所有单元格。
熟练掌握这些单元格操作可以大大提高你的工作效率。
第六章:内核 (Kernels)
前面提到,Jupyter Notebook 是一个与语言无关的平台,它通过“内核”来与特定的编程语言进行交互。当你运行一个代码单元格时,实际上是将单元格的内容发送到与当前 Notebook 关联的内核中执行。内核执行代码并返回结果。
- 默认内核: 当你通过 Anaconda 安装 Jupyter Notebook 时,通常会安装并默认使用 Python 3 内核 (称为
ipykernel
)。 - 内核状态: Notebook 顶部标题栏旁边的小圆圈表示内核的状态:空心表示空闲 (Idle),实心表示忙碌 (Busy),这意味着内核正在执行代码。
- 中断和重启内核:
- 如果你的代码陷入死循环或者运行时间过长,可以使用工具栏的“中断”按钮 (方形图标) 或菜单栏
Kernel
->Interrupt
来停止当前正在执行的代码。 - 如果内核出现问题,或者你想清除所有变量和状态重新开始执行,可以使用工具栏的“重启”按钮 (循环箭头图标) 或菜单栏
Kernel
->Restart
。重启内核就像重启了你的 Python 解释器一样,所有之前定义的变量都会丢失。 Kernel
->Restart Kernel and Run All Cells
是一个非常实用的功能,它会重启内核并从头到尾按顺序执行 Notebook 中的所有代码单元格。这对于确保你的 Notebook 能够完整重现结果非常重要。
- 如果你的代码陷入死循环或者运行时间过长,可以使用工具栏的“中断”按钮 (方形图标) 或菜单栏
6.1 安装其他语言的内核 (进阶)
如果你想在 Jupyter Notebook 中使用 Python 之外的语言,你需要安装相应的内核。例如,要使用 R 语言,你需要安装 IRkernel;要使用 Julia,你需要安装 IJulia 等。安装过程因语言而异,通常涉及在该语言环境中安装一个特定的包,然后注册到 Jupyter。这超出了本入门教程的范围,但了解内核的概念是重要的。
第七章:魔法命令 (Magic Commands)
Jupyter Notebook (特别是 IPython 内核) 提供了一些特殊的命令,称为“魔法命令”(Magic Commands),它们以 %
或 %%
开头,用于执行一些非 Python 代码的操作,例如计时、profiling、与操作系统交互、内联显示图表等。
- 行魔法命令 (%): 以
%
开头,只作用于命令所在的一行。 - 单元格魔法命令 (%%): 以
%%
开头,作用于命令所在的整个单元格。单元格魔法命令必须是单元格的第一行。
一些常用的魔法命令:
%matplotlib inline
: (行魔法) 在 Notebook 中直接显示 Matplotlib 绘图,而不是弹出单独的窗口。对于数据可视化至关重要,通常在 Notebook 开头导入 Matplotlib 后立即使用。%timeit
: (行魔法) 测量一行代码的执行时间。
python
%timeit list(range(1000))%%timeit
: (单元格魔法) 测量整个单元格中所有代码的执行时间。
python
%%timeit
total = 0
for i in range(1000):
total += i%pwd
: (行魔法) 打印当前工作目录 (Print Working Directory)。%ls
: (行魔法) 列出当前目录下的文件和文件夹。%cd path/to/directory
: (行魔法) 改变当前工作目录。%run script.py
: (行魔法) 在 Notebook 中运行一个外部 Python 脚本。%who
: (行魔法) 列出当前内核中定义的所有变量。%whos
: (行魔法) 列出当前内核中定义的所有变量,并显示其类型、大小等详细信息。%quickref
: (行魔法) 显示 IPython 的快速参考。
要查看所有可用的魔法命令列表,可以运行 %lsmagic
。
要查看某个魔法命令的帮助,可以在命令后加上 ?
,例如 %timeit?
。
魔法命令极大地增强了 Notebook 的功能和交互性。
第八章:快捷键 (Keyboard Shortcuts)
熟练使用快捷键可以显著提高在 Jupyter Notebook 中的工作效率。Jupyter Notebook 有两套主要的快捷键,分别对应命令模式和编辑模式。
8.1 命令模式下的快捷键 (蓝色边框)
在命令模式下,快捷键用于对整个单元格进行操作,无需按 Ctrl
/Cmd
。
Enter
: 进入当前选中单元格的编辑模式。Esc
: 从编辑模式切换到命令模式。A
: 在当前选中单元格的上方插入新单元格 (Above)。B
: 在当前选中单元格的下方插入新单元格 (Below)。DD
: 删除当前选中单元格 (Delete Delete)。Z
: 撤销删除单元格。X
: 剪切当前选中单元格。C
: 复制当前选中单元格。V
: 在当前选中单元格下方粘贴单元格。Shift + V
: 在当前选中单元格上方粘贴单元格。Shift + 上/下箭头
: 同时选中多个相邻的单元格。M
: 将当前选中单元格类型切换为 Markdown。Y
: 将当前选中单元格类型切换为 Code。K
/上箭头
: 选中上方单元格。J
/下箭头
: 选中下方单元格。Shift + Enter
: 运行当前单元格,并选中下一个单元格 (如果存在)。Ctrl + Enter
(或Cmd + Enter
): 运行当前单元格,并保持选中当前单元格。Alt + Enter
: 运行当前单元格,并在下方插入一个新单元格。L
: 切换显示代码行号 (仅限代码单元格)。O
: 切换显示/隐藏当前单元格的输出。Shift + L
: 切换显示所有单元格的代码行号。Shift + O
: 切换折叠/展开所有单元格的输出。H
: 显示所有快捷键的帮助文档!这是一个非常重要的快捷键,可以随时查阅。P
: 显示命令面板 (Command Palette)。可以搜索并执行各种命令。Shift + P
: 在命令面板中搜索并执行命令 (与P
功能类似,但通常更方便)。
8.2 编辑模式下的快捷键 (绿色边框)
在编辑模式下,快捷键主要用于编辑单元格内的内容,通常需要结合 Ctrl
或 Cmd
键。
Tab
: 代码补全或缩进。Shift + Tab
: 显示函数或方法的参数提示 (光标需在函数名或括号内)。Ctrl + Space
(或Cmd + Space
): 强制触发代码补全。Ctrl + ]
(或Cmd + ]
): 缩进当前行或选中行。Ctrl + [
(或Cmd + [
): 取消缩进当前行或选中行。Ctrl + /
(或Cmd + /
): 注释/取消注释当前行或选中行。Ctrl + Z
(或Cmd + Z
): 撤销。Ctrl + Y
(或Cmd + Y
): 重做。Ctrl + Shift + Z
: 重做 (在某些系统上)。Home
/End
: 移动光标到行首/行尾。Ctrl + Home
(或Cmd + Home
): 移动光标到单元格开头。Ctrl + End
(或Cmd + End
): 移动光标到单元格末尾。Shift + Enter
: 运行当前单元格,并选中下一个单元格。Ctrl + Enter
(或Cmd + Enter
): 运行当前单元格,并保持选中当前单元格。Alt + Enter
: 运行当前单元格,并在下方插入一个新单元格。
记住所有快捷键一开始可能有点困难,但随着使用次数的增加,你会自然而然地熟悉最常用的那些。刚开始时,多使用 H
(命令模式下) 查看快捷键帮助是一个好习惯。
第九章:分享你的 Notebook
Jupyter Notebook 的一个巨大优势是易于分享。.ipynb
文件本身是一个 JSON 格式的文本文件,包含了所有单元格的内容(代码、Markdown)和输出。你可以直接分享这个 .ipynb
文件。
接收者可以使用 Jupyter Notebook 打开这个文件,看到你编写的所有内容、代码和输出,甚至可以修改代码并重新运行。
9.1 通过文件分享
- 直接分享
.ipynb
文件: 这是最基本的方式。将文件通过邮件、网盘等方式发送给他人。 - 使用 GitHub/GitLab: 将 Notebook 文件上传到 Git 仓库。GitHub、GitLab 等平台原生支持渲染
.ipynb
文件,其他人无需安装 Jupyter Notebook 就可以直接在网页上预览你的 Notebook,包括代码、文本和输出。
9.2 导出为其他格式
有时候,你可能想将 Notebook 导出为更通用的格式,以便没有安装 Jupyter Notebook 的人也能方便地查看,或者用于报告和演示。
使用菜单栏 File
-> Download as
,你可以看到多种导出选项:
Notebook (.ipynb)
: 原始格式,用于分享给 Jupyter 用户。Python (.py)
: 导出为一个纯 Python 脚本。只会包含代码单元格的内容,Markdown 单元格会作为注释导出。HTML (.html)
: 导出为一个静态 HTML 文件。所有内容和输出都会被嵌入到 HTML 中,用浏览器即可打开查看,无需 Jupyter。这是最常用的分享非交互式结果的方式。Markdown (.md)
: 导出为 Markdown 文件。代码单元格会作为代码块导出,Markdown 单元格保持原样。PDF via LaTeX (.pdf)
: 通过 LaTeX 导出为 PDF 文件。需要安装 TeX 环境 (如 TeX Live 或 MiKTeX) 和 Pandoc 工具。这个过程有时比较复杂,特别是处理中文和图片。PDF via HTML
: 通过 HTML 导出为 PDF。通常比 LaTeX 简单,但可能需要安装额外的库(如nbconvert[webpdf]
和一个headless browser,如 Puppeteer)。Slides (.slides.html)
: 导出为基于 Reveal.js 的幻灯片。你可以在 Notebook 中指定哪些单元格是幻灯片的标题、内容、子内容等,然后导出并用浏览器播放。Executable Script (.sh, .bat, etc.)
: 将代码单元格导出为可执行脚本。
对于初学者来说,导出为 HTML 文件是最简单实用的分享方式,可以直接发给任何人,用浏览器就能打开查看。
第十章:更进一步:探索 Jupyter 的生态系统 (简述)
Jupyter Notebook 是 Jupyter 项目的一部分,这个项目还有一个更现代、功能更强大的继任者:JupyterLab。
10.1 JupyterLab
JupyterLab 提供了一个更灵活的用户界面,可以在同一个窗口中打开多个 Notebook、文本编辑器、终端、文件浏览器、甚至集成的帮助文档和变量查看器。它提供了一个更完整的集成开发环境 (IDE) 体验。
安装 JupyterLab 通常也很简单:
“`bash
pip install jupyterlab
or if using Anaconda
conda install jupyterlab
“`
然后使用命令 jupyter lab
启动。
对于刚入门的用户,Jupyter Notebook 已经足够强大且易于上手。随着你对交互式计算环境越来越熟悉,可以考虑切换到 JupyterLab 以获得更强大的功能。
10.2 Jupyter Widgets 和 Extensions
Jupyter 生态系统还包括 Jupyter Widgets (创建交互式控件,如滑块、按钮等) 和各种 Notebook Extensions (nbextensions,为 Notebook 添加额外功能,如目录、代码折叠、自动保存等)。这些可以进一步增强 Notebook 的功能和用户体验,但对于初学者来说不是必需的。
结论
恭喜你!通过本教程,你已经从零开始了解并掌握了 Jupyter Notebook 的基本使用方法。你学会了如何安装、启动它,认识了文件浏览器和笔记本编辑界面,理解了代码单元格和 Markdown 单元格的核心概念,掌握了基本的单元格和 Notebook 管理操作,了解了内核的作用和魔法命令的便利性,熟悉了常用的快捷键,并学会了如何分享你的工作。
Jupyter Notebook 是一个功能强大且用途广泛的工具,特别是在数据科学和教育领域。它的交互性、可读性和易分享性使其成为探索、分析和沟通计算过程的绝佳选择。
学习一个新工具最好的方式就是动手实践。现在,打开你的 Jupyter Notebook,尝试创建一些代码单元格和 Markdown 单元格,运行一些简单的 Python 代码,写一些解释性的文本,使用几个快捷键,然后尝试导出你的第一个 Notebook 为 HTML 文件。
随着你的实践深入,你会发现 Jupyter Notebook 还有更多隐藏的功能和技巧等待你去探索。祝你在使用 Jupyter Notebook 的旅程中愉快!