快速上手 Jupyter Notebook:看这篇就够了
引言:Jupyter Notebook 是什么?为何如此流行?
在数据科学、机器学习、学术研究、教育乃至软件开发的许多领域,Jupyter Notebook 已经成为了一个不可或缺的工具。它不仅仅是一个代码编辑器,更是一个集代码编写、运行、文本叙述、数学公式、可视化结果展示于一体的交互式笔记本环境。
想象一下,你正在进行数据分析。你需要在某个地方写代码处理数据,在另一个地方记录下你的思路、解释你的发现,可能还需要插入图表来直观展示结果。传统的工作流程可能涉及多个工具:一个代码编辑器、一个文档编辑器、一个绘图工具。而 Jupyter Notebook 的强大之处在于,它将这一切无缝地整合在一个文档中(.ipynb
文件)。
Jupyter Notebook 的核心特点:
- 交互性强: 代码可以分块(单元格)执行,你可以逐个运行单元格,即时看到结果,非常适合探索性编程和调试。
- 富文本混合: 在同一个文档中,你可以轻松混合编写代码和使用 Markdown 进行文本叙述。这意味着你可以详细解释你的代码做了什么,添加背景信息,甚至包含图片和链接。
- 结果可视化: 代码执行的结果(包括变量值、输出信息、错误报告以及最重要的图表)会直接显示在代码下方,形成了代码、解释和结果的完整记录。
- 支持多种语言(Kernel): 虽然它最常用于 Python,但通过安装不同的“内核”(Kernel),Jupyter Notebook 可以支持 R、Julia、Scala 等几十种编程语言。
- 易于分享:
.ipynb
文件本身就是一份完整的报告,包含了代码、文本和输出。你可以直接分享这个文件,或者导出为 HTML、PDF、Markdown 等多种格式,方便他人查看和理解你的工作。
正是这些特点,使得 Jupyter Notebook 成为了数据科学家、研究人员和教育者的“神器”。它可以帮助你:
- 进行数据清洗、转换和探索。
- 构建和训练机器学习模型。
- 进行统计分析和模拟。
- 编写技术文档和教程。
- 展示你的代码和结果。
无论你是一个编程新手,还是一个经验丰富的开发者,Jupyter Notebook 都能显著提高你的工作效率。
那么,如何快速上手 Jupyter Notebook 呢?别担心,本文将手把手带你完成从安装到熟练使用核心功能的全过程。看完这篇,你就能轻松开启你的 Jupyter Notebook 之旅!
第一步:安装 Jupyter Notebook
使用 Jupyter Notebook 的最简单、最推荐的方式是通过安装 Anaconda 发行版。Anaconda 是一个流行的 Python/R 数据科学平台,它包含了 Python 解释器、Jupyter Notebook 以及许多常用的科学计算库(如 NumPy, Pandas, Matplotlib, Scikit-learn 等),一次安装,省去很多麻烦。
方法一:推荐使用 Anaconda (适用于大多数用户)
- 下载 Anaconda: 访问 Anaconda 官方网站 (https://www.anaconda.com/products/distribution)。根据你的操作系统(Windows, macOS, Linux)和系统架构(通常是 64 位)选择对应的安装包进行下载。推荐下载图形化安装器。
- 运行安装程序:
- Windows: 双击下载的
.exe
文件。按照安装向导提示进行。在安装选项中,建议选择“Just Me”(只为当前用户安装),除非你有特殊需求。在“Advanced Options”中,强烈建议勾选 “Add Anaconda to my PATH environment variable”(将 Anaconda 添加到我的 PATH 环境变量中)。虽然官方有时不推荐,但这会大大简化后续在命令行中使用 conda 和 jupyter 命令。如果安装时未勾选,后续需要手动配置环境变量或使用 Anaconda Prompt。 - macOS: 双击下载的
.pkg
文件。按照提示进行安装。 - Linux: 打开终端,切换到下载文件所在的目录,然后运行
bash Anaconda3-*.sh
(将*
替换为你的文件名)。按照提示阅读许可协议并确认安装路径。
- Windows: 双击下载的
- 验证安装:
- 安装完成后,打开一个新的终端(Windows 用户请打开 Anaconda Prompt,而不是普通的命令提示符)。
- 输入命令
conda list
并回车。如果看到安装的包列表,说明 conda 安装成功。 - 输入命令
jupyter notebook --version
并回车。如果看到 Jupyter Notebook 的版本号,说明 Jupyter Notebook 也已经安装成功。
方法二:使用 pip 安装 (适合已有 Python 环境的用户)
如果你已经安装了 Python (版本 3.3 或更高,或者 Python 2.7),并且习惯使用 pip 来管理包,也可以通过 pip 安装 Jupyter Notebook。
- 打开终端/命令行:
- Windows: 打开命令提示符 (
cmd
) 或 PowerShell。 - macOS/Linux: 打开终端。
- Windows: 打开命令提示符 (
- 运行安装命令:
bash
pip install notebook
如果你想安装包含更多常用科学计算库的jupyterlab
(Jupyter Notebook 的下一代交互式开发环境,功能更强大,但对于新手入门,Notebook 已足够且更经典),可以使用:
bash
pip install jupyterlab
安装jupyterlab
通常也会同时安装notebook
。 - 验证安装:
bash
jupyter notebook --version
# 或者如果你安装了 jupyterlab
jupyter lab --version
如果显示版本号,则安装成功。
总结: 对于初学者和主要进行数据科学工作的用户,强烈推荐安装 Anaconda。它包含了你需要的大部分工具,可以省去很多单独安装库的麻烦。如果你的 Python 环境非常精简或有特定需求,可以使用 pip 安装。
第二步:启动 Jupyter Notebook
安装完成后,启动 Jupyter Notebook 非常简单。
- 打开终端/命令行:
- Windows: 如果你通过 Anaconda 安装并勾选了添加到 PATH,可以直接打开命令提示符 (
cmd
) 或 PowerShell。否则,请务必打开 Anaconda Prompt。 - macOS/Linux: 打开终端。
- Windows: 如果你通过 Anaconda 安装并勾选了添加到 PATH,可以直接打开命令提示符 (
- 输入启动命令:
bash
jupyter notebook - 回车执行。
执行命令后:
- 终端会显示一些启动信息,包括正在运行的服务地址(通常是
http://localhost:8888/
或类似的地址)。 - 你的默认网页浏览器会自动打开一个新标签页,显示 Jupyter Notebook 的文件管理器界面。
注意: 不要关闭启动 Jupyter Notebook 的终端窗口。这个窗口正在运行 Jupyter 服务器进程。关闭它将导致你的 Notebook 停止工作。你可以最小化它。
浏览器中打开的界面是 Jupyter Notebook 的主界面,它显示了当前启动目录下的文件和文件夹列表。默认情况下,这个目录是你执行 jupyter notebook
命令时的当前目录。
第三步:认识 Jupyter Notebook 主界面
在浏览器中打开的主界面,你可以看到类似文件管理器的视图。顶部有几个标签页:
- Files (文件): 这是你最常用的界面,显示了当前目录下的文件和文件夹。你可以在这里创建新的 Notebook、文件夹或文本文件,以及上传文件。
- Running (运行中): 显示当前所有正在运行的 Notebook 和终端会话。如果你发现某个 Notebook 卡住了,可以在这里选择它并点击“Shutdown”来停止对应的内核。
- Clusters (集群): 这是用于更高级的并行计算设置,初学者暂时无需关心。
在“Files”标签页,右侧有一个绿色的 “New” (新建) 按钮。点击它,你会看到一个下拉菜单:
- Notebook: 选择一个内核(通常是 Python 3)来创建一个新的 Jupyter Notebook 文件 (
.ipynb
)。 - Folder: 创建一个新的文件夹。
- Text File: 创建一个新的普通文本文件 (
.txt
)。 - Terminal: 打开一个终端会话(直接在浏览器中操作命令行)。
点击 “Notebook” -> “Python 3”,就会在新标签页中打开一个空白的 Jupyter Notebook 编辑器界面。恭喜你,你已经成功创建了你的第一个 Notebook!
第四步:深入了解 Notebook 编辑器界面
现在,你面对的是一个空白的 Notebook 编辑器界面。让我们来认识一下它的组成部分:
- 标题栏: 位于页面顶部,默认显示 “Untitled”。点击它,你可以为你的 Notebook 重命名。
.ipynb
扩展名会自动添加。 - 菜单栏: 在标题栏下方,包含
File
(文件),Edit
(编辑),View
(视图),Insert
(插入),Cell
(单元格),Kernel
(内核),Widgets
(组件),Help
(帮助) 等菜单。这些菜单提供了各种操作选项,如保存、导出、编辑单元格、管理内核等。 - 工具栏: 位于菜单栏下方,包含一系列常用操作的图标按钮。例如:
- 保存 (Save)
- 插入单元格 (Insert cell below)
- 剪切、复制、粘贴单元格 (Cut, Copy, Paste cells)
- 上移、下移单元格 (Move cell up, Move cell down)
- 运行单元格 (Run cell)
- 中断内核 (Interrupt kernel)
- 重启内核 (Restart kernel)
- 切换单元格类型 (Cell type dropdown: Code, Markdown, Raw NBConvert)
- 命令面板 (Command palette – 像一个搜索框,可以快速找到并执行各种操作)
- 单元格区域: 这是 Notebook 的主要工作区域,由一个个独立的“单元格”组成。每个单元格都可以包含代码、文本或原始数据。
第五步:理解单元格 (Cells)
单元格是 Jupyter Notebook 的核心构建块。每个单元格都可以独立运行。主要有两种类型的单元格你需要掌握:
-
Code Cells (代码单元格):
- 这是你编写可执行代码的地方。
- 在代码单元格中输入你的 Python 代码(或其他你选择的 Kernel 语言的代码)。
- 单元格左侧有一个
In [ ]:
的标记。In
表示输入,方括号中的数字表示该单元格是第几个被执行的代码单元格。如果方括号中是*
,表示该单元格正在运行中。 - 运行代码单元格后,其输出会直接显示在单元格下方,标记为
Out [数字]:
。
-
Markdown Cells (Markdown 单元格):
- 这是你编写解释性文本、文档、公式、插入图片等的地方。
- 使用 Markdown 标记语言来格式化文本。Markdown 是一种轻量级的标记语言,语法简单易学(后面会详细介绍)。
- 运行 Markdown 单元格后,它会将其内容渲染成格式化的文本显示出来。它没有输入/输出标记 (
In
/Out
)。
第六步:使用单元格:编写与运行
现在,让我们在 Notebook 中实际操作单元格。
当你新建一个 Notebook 时,会默认创建一个空白的 Code 单元格。
编写和运行代码单元格
- 输入代码: 点击 Code 单元格,光标会出现,你就可以开始输入代码了。例如,输入
print("Hello, Jupyter!")
。 -
运行单元格: 有几种方法可以运行当前选中的单元格:
- 点击工具栏上的 “Run” 按钮 (向右的箭头)。
- 使用快捷键:
Shift + Enter
: 运行当前单元格,并在下方插入一个新的 Code 单元格(如果当前不是最后一个单元格,则选中下方单元格)。这是最常用的运行方式。Ctrl + Enter
(或Cmd + Enter
on macOS): 运行当前单元格,但光标仍然留在当前单元格。Alt + Enter
: 运行当前单元格,并在下方插入一个新的 Code 单元格。
运行后,代码的输出
Hello, Jupyter!
会显示在单元格下方。左侧的In [ ]:
也会变成In [1]:
(如果这是你第一次运行代码单元格)。 -
尝试更多代码: 在新的单元格中输入
1 + 1
,运行它。你会看到输出2
。输入a = 10
,再在下一个单元格输入print(a * 2)
,运行后会看到20
。这表明单元格之间是可以共享变量和状态的(只要它们使用同一个内核)。
编写和运行 Markdown 单元格
- 切换单元格类型: 选中一个单元格(点击其左侧空白区域或内部)。在工具栏的下拉菜单中选择 “Markdown”。或者在命令模式下按
M
键(稍后解释命令模式)。 - 输入 Markdown 内容: 在 Markdown 单元格中输入文本。例如,输入
# 这是一级标题
。 - 运行单元格: 使用上面提到的任何一种运行方式 (
Shift + Enter
,Ctrl + Enter
,Alt + Enter
) 或点击 “Run” 按钮。
运行后,你会看到 # 这是一级标题
被渲染成了一个大的标题。Markdown 单元格运行后就变成了格式化的文本,如果要编辑它,需要双击该单元格。
单元格的两种模式:编辑模式 vs 命令模式
Jupyter Notebook 的单元格有两种主要模式,理解它们对于高效操作至关重要:
- Edit Mode (编辑模式): 当你点击单元格内部准备输入或编辑内容时,单元格边框会变成 绿色,并且光标在闪烁。此时你输入的任何内容都会进入到单元格内部。
- Command Mode (命令模式): 当你选中一个单元格,但不处于编辑状态时,单元格边框是 蓝色。此时你输入的按键会被解释为命令,用于操作单元格本身(例如,剪切、复制、粘贴、删除、切换单元格类型、插入新单元格等),而不是输入到单元格的内容中。
如何切换模式:
- 从编辑模式进入命令模式:按下
Esc
键。 - 从命令模式进入编辑模式:按下
Enter
键,或者双击单元格。
掌握命令模式下的快捷键可以极大地提高效率。 以下是一些最常用的命令模式快捷键(确保单元格处于蓝色边框的命令模式下):
A
: 在当前单元格 上方 插入一个新的 Code 单元格 (A = Above)B
: 在当前单元格 下方 插入一个新的 Code 单元格 (B = Below)DD
: 快速按下D
键两次,删除当前单元格 (DD = Delete)X
: 剪切当前单元格C
: 复制当前单元格V
: 在当前单元格 下方 粘贴剪切或复制的单元格Z
: 撤销删除单元格M
: 将当前单元格类型切换为 MarkdownY
: 将当前单元格类型切换为 CodeEnter
: 进入当前选中单元格的编辑模式Esc
: 退出现有单元格的编辑模式,进入命令模式Shift + 上/下箭头
: 选中多个相邻单元格
花一些时间练习在编辑模式和命令模式之间切换,并尝试这些快捷键,你会发现操作变得流畅很多。
第七步:使用 Markdown 美化你的 Notebook
在 Notebook 中使用 Markdown 是编写清晰、易于理解的报告或文档的关键。掌握一些基本的 Markdown 语法非常有用。
在 Markdown 单元格中输入以下内容,然后运行单元格看看效果:
- 标题: 使用
#
符号,#
的数量表示标题的级别(1 到 6)。
markdown
# 这是一级标题
## 这是二级标题
### 这是三级标题 -
段落: 直接输入文本即可。段落之间用空行分隔。
“`markdown
这是一个段落。这是另一个段落。
3. **强调:**
markdown
* 斜体:使用一个 `*` 或一个 `_` 包围文本,如 `*斜体文本*` 或 `_斜体文本_`。
* 粗体:使用两个 `*` 或两个 `_` 包围文本,如 `**粗体文本**` 或 `__粗体文本__`。
* 粗斜体:使用三个 `*` 或三个 `_` 包围文本,如 `***粗斜体文本***`。
4. **列表:**
* 无序列表:使用 `*`, `-`, 或 `+` 作为列表项标记。
* 项目一
* 项目二
– 项目二的子项目
* 有序列表:使用数字加点。
markdown
1. 第一个项目
2. 第二个项目
3. 第三个项目
5. **链接:** `[链接文本](链接地址)`
markdown
访问百度
6. **图片:** ``。图片地址可以是网络图片链接,也可以是 Notebook 同一目录下的本地图片文件。
markdown
7. **代码块:**
包围多行代码,并在第一个
* 行内代码:使用反引号 `` ` `` 包围代码,如 `这是 `inline code` 示例`。
* 代码块:使用三个反引号后面指定语言名称进行语法高亮。
python
````markdown
print(“这是一个代码块”)
for i in range(3):
print(i)
````
markdown
8. **分隔线:** 在一行中连续使用三个或更多的 `*`, `-`, 或 `_`,行内不能有其他内容(可以在中间加空格)。
9. **数学公式:** Jupyter Notebook 支持 LaTeX 语法来书写数学公式。
markdown
* 行内公式:使用一对 `$` 包围公式,如 `爱因斯坦的质能方程 $E=mc^2$`。
* 块级公式:使用一对 `$$` 包围公式,公式会单独一行并居中显示。
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
“`
熟练使用 Markdown 可以让你的 Notebook 看起来更专业,逻辑更清晰,无论是自己回顾还是与他人分享都更加方便。
第八步:一个小例子:数据探索与可视化
为了展示 Jupyter Notebook 在数据科学中的魅力,让我们来运行一个简单的 Python 数据分析和可视化例子。你需要确保安装了 pandas
和 matplotlib
库。如果你安装的是 Anaconda,这两个库通常已经预装了。如果使用 pip,可能需要额外安装:pip install pandas matplotlib
。
在你的 Notebook 中创建新的 Code 单元格,并依次输入以下代码运行:
“`python
Cell 1: 导入库
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np # 也导入 numpy,后面可能用到
print(“库导入成功!”)
“`
运行此单元格,你应该看到 “库导入成功!” 输出。
“`python
Cell 2: 创建一个简单的数据集
data = {‘类别’: [‘A’, ‘B’, ‘C’, ‘D’, ‘A’, ‘B’, ‘C’, ‘D’],
‘值’: [10, 20, 15, 25, 12, 22, 18, 28],
‘数量’: [100, 120, 90, 110, 105, 115, 95, 125]}
df = pd.DataFrame(data)
print(“数据集创建成功!数据集的前5行:”)
print(df.head())
print(“\n数据集信息:”)
df.info()
``
df.head()
运行此单元格,你会看到创建的 DataFrame 的前几行以及它的结构信息。和
df.info()` 的输出直接显示在单元格下方。
“`python
Cell 3: 进行简单的数据分析 – 按类别分组求平均值
average_value_by_category = df.groupby(‘类别’)[‘值’].mean()
print(“\n按类别分组的平均值:”)
print(average_value_by_category)
“`
运行此单元格,你会看到每个类别的平均值计算结果。
“`python
Cell 4: 数据可视化 – 绘制平均值的柱状图
plt.figure(figsize=(8, 5)) # 设置图表大小
average_value_by_category.plot(kind=’bar’, color=’skyblue’)
plt.title(‘不同类别的平均值’) # 设置标题
plt.xlabel(‘类别’) # 设置X轴标签
plt.ylabel(‘平均值’) # 设置Y轴标签
plt.xticks(rotation=0) # 让X轴标签不旋转
plt.grid(axis=’y’, linestyle=’–‘, alpha=0.7) # 添加网格线
plt.tight_layout() # 调整布局,避免标签重叠
plt.show() # 显示图表
“`
运行此单元格,一个漂亮的柱状图就会直接显示在单元格下方。
通过这个例子,你可以看到 Jupyter Notebook 如何让你一步步地进行数据处理、分析和可视化,并将代码、中间结果、最终图表以及你的解释(可以使用 Markdown 单元格添加)都保存在同一个文档中。这种交互式的、叙述性的方式非常适合数据探索和报告撰写。
第九步:保存和导出你的 Notebook
Jupyter Notebook 会自动保存你的工作(默认每隔几分钟),但你也可以手动保存:
- 点击工具栏上的保存图标(一个软盘形状)。
- 使用快捷键
Ctrl + S
(或Cmd + S
on macOS)。 - 通过菜单栏
File -> Save and Checkpoint
。
Save and Checkpoint
会创建一个检查点,你可以随时回滚到这个状态(File -> Revert to Checkpoint
)。
除了 .ipynb
格式,你还可以将 Notebook 导出为其他格式,方便分享或发布:
- 通过菜单栏
File -> Download as
。你会看到多种导出格式:Python (.py)
: 导出纯 Python 脚本,只包含代码单元格的内容。HTML (.html)
: 导出为静态 HTML 文件,包含代码、输出和 Markdown 内容,非常适合网页展示。Markdown (.md)
: 导出为 Markdown 文件,代码单元格内容会包含在代码块中。PDF via LaTeX (.pdf)
: 导出为 PDF 文件。这通常需要你的系统安装了 LaTeX 环境,有时会遇到问题。PDF via HTML (.pdf)
: 尝试通过先转为 HTML 再转为 PDF,通常不需要安装 LaTeX,但格式可能不如 LaTeX 导出精确。- 还有其他一些格式如
.rst
,.ipynb
等。
选择你需要的格式,点击即可下载导出的文件。
第十步:其他常用操作和技巧
- 清空所有输出: 有时你想重新运行整个 Notebook,但不希望保留之前的输出。可以通过菜单栏
Cell -> All Output -> Clear
来清空所有单元格的输出。 - 运行所有单元格: 可以通过菜单栏
Cell -> Run All
来按顺序运行 Notebook 中的所有单元格。Cell -> Run All Above
或Run Selected Cells
等也很常用。 - 中断或重启内核: 如果某个代码单元格进入了死循环或者运行时间过长,你可以点击工具栏上的“中断”(方形图标)按钮,或者通过菜单栏
Kernel -> Interrupt
来中断正在运行的单元格。如果内核出现问题,可以点击工具栏上的“重启”(圆形箭头)按钮,或者通过菜单栏Kernel -> Restart
。重启内核会清除所有变量和状态,需要重新运行单元格。 - 使用命令面板: 按下
Ctrl + Shift + P
(或Cmd + Shift + P
on macOS) 可以打开命令面板,输入关键词可以快速搜索并执行各种菜单命令和快捷键对应的操作,非常方便。 - 查找和替换: 在编辑模式下,按
Ctrl + F
(或Cmd + F
on macOS) 可以进行查找和替换。 - 行号: 在命令模式下,按
L
键可以显示/隐藏当前单元格的行号。
总结与进阶
至此,你应该已经掌握了 Jupyter Notebook 的基本安装、启动、界面操作、单元格使用(代码和 Markdown)、模式切换、常用快捷键以及保存导出等核心功能。这些知识足以让你开始使用 Jupyter Notebook 进行日常的编程、数据探索和文档编写工作。
Jupyter Notebook 的强大之处在于它的灵活性和交互性。多加练习,尝试在 Notebook 中完成你的小项目或练习,你会越来越体会到它的便利。
下一步可以探索的领域:
- JupyterLab: Jupyter Notebook 的下一代,提供了一个更集成、更强大的界面环境,包含文件浏览器、终端、文本编辑器等功能,并且支持多窗口布局。
- nbextensions: Jupyter Notebook 的扩展功能集,可以添加目录、代码折叠、拼写检查等实用功能。
- 其他 Kernel: 尝试为 Notebook 安装其他语言的内核,如 R, Julia 等。
- 版本控制: 将你的
.ipynb
文件放入 Git 进行版本控制。需要注意.ipynb
文件是 JSON 格式,文件变化可能会比较大,可以使用nbdime
等工具来更好地管理 Notebook 的版本差异。 - 在线 Jupyter 环境: 使用 Google Colab, Kaggle Kernels, Azure Notebooks 等在线平台,无需本地安装即可使用 Jupyter Notebook。
Jupyter Notebook 是通往交互式计算世界的绝佳入口。掌握它,你将能更高效、更直观地进行数据分析、科学研究和代码开发。
现在,勇敢地打开你的 Jupyter Notebook,开始编写你的第一个代码或文档吧!看这篇,快速上手,你已经迈出了坚实的一步!