Jupyter Notebook入门教程:从零开始学使用 – wiki基地


Jupyter Notebook 入门教程:从零开始学使用

引言:为什么选择 Jupyter Notebook?

在数据科学、机器学习、教育、研究甚至是日常的代码实验中,Jupyter Notebook 已经成为一个不可或缺的工具。它不仅仅是一个代码编辑器,更是一个强大的交互式计算环境,能够将代码、文本(包括数学方程、图片、富媒体)、计算输出、可视化结果等内容全部集成在一个可共享的文档中。

想象一下,你正在分析数据,你需要编写代码来清洗数据、进行统计分析,然后生成图表来展示结果。同时,你还需要详细记录你的分析过程、解释你的思路,并可能包含一些理论背景或结论。如果使用传统的编程方式,你可能需要一个代码文件、一个文档文件(比如Word或Markdown),以及单独生成的图片文件。这使得整个过程分散,难以追溯和分享。

Jupyter Notebook 应运而生,完美地解决了这个问题。它提供了一个基于Web的交互式环境,让你能够在“笔记本”中组织你的工作。每一个笔记本都由一系列的“单元格”(Cells)组成,这些单元格可以是:

  1. 代码单元格 (Code Cells): 你可以在这里编写和执行代码(默认为 Python,但支持多种语言)。代码执行后,结果会直接显示在单元格下方。
  2. 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:

  1. 下载 Anaconda 安装包: 访问 Anaconda 官方网站 (https://www.anaconda.com/products/distribution)。根据你的操作系统(Windows, macOS, Linux)选择对应的 Python 3.x 版本图形化安装程序下载。推荐下载最新版本。
  2. 运行安装程序:
    • 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)。
  3. 验证安装: 安装完成后,打开一个新的终端或命令提示符。输入以下命令并按 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 通过终端/命令提示符启动

这是最常用和推荐的启动方式:

  1. 打开终端或命令提示符:
    • Windows: 搜索并打开 “Anaconda Prompt” (如果你安装了 Anaconda) 或 “命令提示符” / “PowerShell”。
    • macOS / Linux: 打开终端应用程序。
  2. 导航到工作目录 (可选但推荐): 启动 Jupyter Notebook 时,它会默认在你启动命令所在的目录下查找和创建文件。因此,建议先使用 cd 命令切换到你想要存放 Notebook 文件的目录。例如:
    bash
    cd Documents/MyProjects/JupyterNotebooks

    如果你不切换目录,它会默认在你启动终端时的当前目录(通常是用户主目录)启动。
  3. 输入启动命令: 在终端中输入以下命令并按 Enter:
    bash
    jupyter notebook
  4. 观察输出: 终端会显示一些信息,包括服务器启动的日志和访问地址 (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).
  5. 浏览器自动打开: 通常情况下,你的默认浏览器会自动打开一个新标签页,并加载 Jupyter Notebook 的文件浏览器界面,地址就是终端中显示的那个 URL (通常是 http://localhost:8888/).
  6. 如果浏览器没有自动打开: 手动复制终端中显示的 URL(包括 ?token=... 部分),粘贴到你的浏览器地址栏中并访问。
  7. 不要关闭终端: 启动 Jupyter Notebook 的终端窗口必须保持打开状态。关闭这个窗口将停止 Jupyter 服务器,你就无法再使用 Notebook 了。要停止服务器,在终端中按 Ctrl + C,然后输入 y 并按 Enter 确认关闭。

2.2 通过 Anaconda Navigator 启动 (仅限 Anaconda)

如果你安装了 Anaconda,也可以使用图形界面的 Anaconda Navigator 来启动 Jupyter Notebook:

  1. 打开 Anaconda Navigator: 在你的应用程序列表中找到并启动 “Anaconda Navigator”。
  2. 找到 Jupyter Notebook: 在 Navigator 界面中,你会看到各种应用程序的图标。找到 Jupyter Notebook 的图标。
  3. 点击 Launch: 点击 Jupyter Notebook 图标下方的 “Launch” 按钮。
  4. 浏览器自动打开: 同样,这会在浏览器中打开 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 文件时,会进入笔记本编辑界面。这是你编写代码和文档的主要工作区域。

让我们看看编辑界面的主要组成部分:

  1. 标题栏: 页面顶部显示 Notebook 的名称(默认为 “Untitled”)。点击标题可以重命名 Notebook。旁边显示了当前内核的状态(一个小圆圈:空心表示空闲 Idle,实心表示忙碌 Busy)。
  2. 菜单栏: 位于标题栏下方,包含多个下拉菜单:
    • File (文件): 新建 Notebook、打开、复制、重命名、保存、检查点 (Save and Checkpoint)、下载为不同格式 (Download as…)、关闭和停止 (Close and Halt)。
    • Edit (编辑): 剪切、复制、粘贴、删除单元格,分割/合并单元格,移动单元格等。
    • View (视图): 切换显示工具栏、行号等。
    • Insert (插入): 在上方或下方插入新单元格。
    • Cell (单元格): 运行单元格、运行所有单元格、改变单元格类型、管理单元格输出等。
    • Kernel (内核): 中断、重启、重新连接、关闭内核,改变内核等。这是管理代码执行引擎的地方。
    • Widgets (控件): 与交互式控件相关的功能。
    • Help (帮助): 提供 Jupyter, Python 库等的参考文档链接。
  3. 工具栏: 位于菜单栏下方,提供常用操作的快捷按钮。从左到右通常有:
    • 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+PCmd+Shift+P)
    • Trusted/Untrusted (信任状态 – 涉及 Notebook 安全性,通常新建的 Notebook 是受信任的)
  4. 单元格区域: 这是页面的主体部分,由一系列独立的单元格构成。每个单元格都有一个输入区域和一个输出区域(对于代码单元格而言)。选中单元格时,其左侧或右侧会有一个边框。
    • 单元格模式 (Cell Modes): 这是理解 Notebook 操作的关键。一个单元格可以处于两种模式:
      • 编辑模式 (Edit Mode): 当你点击单元格内部开始输入文本或代码时进入。此时单元格边框通常是绿色的,左侧有一条竖线,并且光标在闪烁。在此模式下,你可以编辑单元格内容。
      • 命令模式 (Command Mode): 当你退出编辑单元格(例如按 Esc 键)时进入。此时单元格边框通常是蓝色的,没有光标闪烁。在此模式下,你可以对整个单元格进行操作(如运行、复制、粘贴、删除、改变类型等),而不是编辑其内容。很多快捷键只在命令模式下有效。
    • 输入区域: 代码单元格在这里编写代码,Markdown 单元格在这里编写 Markdown 文本。
    • 输出区域: 代码单元格执行后的输出(文本、变量值、图表、错误信息等)会显示在这里。Markdown 单元格执行后,这里会显示渲染后的格式化文本。

了解了这些界面元素,你就可以开始创建和编辑你的第一个 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+EnterCtrl+Enter)。运行后,输入区域会隐藏,输出区域显示渲染后的格式化文本。
  • 重新编辑: 双击已渲染的 Markdown 单元格可以重新进入编辑模式。

常用 Markdown 语法示例:

“`markdown

一级标题

二级标题

这是一个段落。你可以在这里写下你的想法、解释你的代码。

粗体文本斜体文本

可以使用列表:
– 项目 A
– 项目 B
– 子项目 B1

有序列表:
1. 第一步
2. 第二步

插入链接:
访问 Jupyter 官网

插入图片 (使用相对路径或URL):
Jupyter Logo

行内代码 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

  • 新建:
    1. 在文件浏览器界面,点击右上角的 “New” 按钮。
    2. 在下拉菜单中选择你想要的内核(例如 “Python 3″)。
    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 AboveInsert 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 AboveMerge 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 编辑模式下的快捷键 (绿色边框)

在编辑模式下,快捷键主要用于编辑单元格内的内容,通常需要结合 CtrlCmd 键。

  • 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 的旅程中愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部