本节摘要:Jupyter 是数据科学最常用的交互式工作台,核心是"单元格"这一模型——代码可以分格写、分格跑、边跑边看结果。本节带你上手 Jupyter Lab 的单元格操作、快捷键与 Magic 命令,并对比 Notebook、脚本与 IDE 三种工作方式的适用场景。
阅读完本节,你应当能够:
%matplotlib inline、%timeit 等常用 Magic 命令写数据分析代码和写网页后端是两种完全不同的节奏。后端是一次性把整个服务跑起来;数据分析是"读数据 → 看看长啥样 → 改一步 → 再看看",每一步都要盯着中间结果。如果用传统脚本方式,每改一行都得重跑整个文件,光打印中间结果就能把人逼疯。
Jupyter 把这个问题解决了:它把代码切成一个个单元格,每个单元格可以独立运行,结果(表格、图表、文字)直接显示在代码下方。你可以先跑一步看结果,根据结果决定下一步写什么——这正是数据分析该有的节奏。
一个 Notebook 文件由两类单元格组成:代码单元格(写 Python,运行后输出结果)和 Markdown 单元格(写说明文字,渲染成文档)。两者交替排列,就形成了一份"会执行的文档"——上面是思路说明,下面是代码和输出,分析过程可以被完整回溯。

Notebook 背后有一个 Python 内核(kernel)在持续运行。单元格 A 里定义的变量,单元格 B 里可以直接用——这就是为什么可以先跑"加载数据",再跑"筛选数据"而不需要重新加载。这份"会话状态"是 Notebook 高效的根本,也是踩坑的来源:如果某格报错,前面定义的变量可能已经变了,排查时建议从出错处往上一格一格回看,必要时重启内核从头跑。
Jupyter 有命令模式(按 Esc 进入,管单元格结构)和编辑模式(按 Enter 进入,管代码内容)。快捷键大多在命令模式下生效,刚上手容易按错方向。
conda activate ds jupyter lab
浏览器会自动打开 Jupyter Lab 界面。左侧是文件树,右侧是工作区。点击左上角加号或右键文件夹,新建一个 Notebook,选择 Python 3 内核。
| 快捷键 | 功能 | 模式 |
|---|---|---|
| Shift + Enter | 运行当前单元格并跳到下一个 | 任意 |
| Ctrl + Enter | 运行当前单元格,不跳转 | 任意 |
| Esc | 进入命令模式 | 任意 |
| Enter | 进入编辑模式 | 命令 |
| A / B | 在上方/下方插入单元格 | 命令 |
| D + D | 删除当前单元格 | 命令 |
| M | 把单元格变成 Markdown | 命令 |
| Y | 把单元格变成代码 | 命令 |
| Shift + Tab | 查看函数签名与文档 | 编辑 |
💡 关键直觉:只记三个就够开工——Shift+Enter 运行、A/B 插入、M/Y 切换单元格类型。其余遇到再查。
Magic 命令是 Jupyter 独有的增强语法,以百分号开头:
%matplotlib inline # 让图表直接显示在单元格下方 %timeit 函数调用 # 统计一段代码的平均运行时间 %%time # 统计整个单元格的运行时间 %load_ext 扩展名 # 加载扩展,如 %load_ext autoreload %who # 列出当前会话所有变量
⚠️ 常见坑:
%matplotlib inline只对当前 Notebook 生效,换一个 Notebook 要重新执行;它不是 Python 语法,放进 .py 脚本会报错。
| 工作方式 | 优势 | 劣势 | 适合场景 |
|---|---|---|---|
| Jupyter Notebook | 交互、可视化、可回溯 | 状态隐式、难测试 | 探索分析、教学演示 |
| 纯 Python 脚本 | 确定性强、易测试 | 中间结果不可见 | 定时任务、生产代码 |
| IDE(VS Code/PyCharm) | 调试器、重构、类型提示 | 重、启动慢 | 工程化开发、团队协作 |
现实中常见组合:用 Notebook 探索和验证思路,把验证过的逻辑抽成脚本或函数,交给 IDE 做工程化打磨。数据科学项目几乎都是这条"笔记本出思路、脚本出产品"的路径。
VS Code 的 Jupyter 插件可以在 IDE 里直接用 Notebook,还能打断点调试;PyCharm 专业版对 Pandas 有专门的 DataFrame 查看器;Spyder 是轻量科学计算 IDE,自带变量浏览器。工具选顺手即可,不必追求全装。
Notebook 文件本身是 JSON 格式的文档,包含代码、输出与元数据。分享时有几个讲究:
💡 关键直觉:Notebook 是"过程记录"不是"产品代码"。最终的分析结果要么固化成脚本,要么导出成报告——别让 Notebook 既当草稿纸又当交付物。
Notebook 用久了最常见的问题是"内核忙"——某个单元格死循环或处理超大数组,长时间不返回。此时别硬等,工具栏"重启内核"能一键重置:
# 排查是否死循环:先看有没有无限循环 # while True: ... 这类代码千万别在 Notebook 里直接跑
重启内核后,所有变量清空、按顺序从头跑一遍单元格即可恢复。这也是为什么好的 Notebook 应该"从上到下能一次性跑通"——中间状态不依赖手工赋值,重跑无负担。
结合前面内容,给出一个真实项目的分工示例:探索期用 Notebook 快速验证清洗思路和画图样式;定型期把验证过的逻辑抽成函数放进脚本;交付期用脚本跑全量数据、出报表。这套"Notebook 出思路、脚本出产品"的分工,是数据科学团队最成熟的工作流。
%matplotlib inline 让图表内嵌显示环境和工作台都备好了,下一章我们正式进入第一个核心库——NumPy,看看数组这种数据结构为什么能让计算快出几个量级。