1.2 Jupyter 与数据科学开发工具链


1.2 Jupyter 与数据科学开发工具链

本节摘要:Jupyter 是数据科学最常用的交互式工作台,核心是"单元格"这一模型——代码可以分格写、分格跑、边跑边看结果。本节带你上手 Jupyter Lab 的单元格操作、快捷键与 Magic 命令,并对比 Notebook、脚本与 IDE 三种工作方式的适用场景。

你能学到什么

阅读完本节,你应当能够:

  1. 启动 Jupyter Lab,新建并运行一个代码单元格
  2. 熟练使用运行、插入、上下移动单元格的快捷键
  3. 会用 %matplotlib inline%timeit 等常用 Magic 命令
  4. 说清 Notebook、脚本、IDE 三种工作方式的取舍
  5. 按任务类型给"代码写在哪"做出合理选择

一、问题与直觉

写数据分析代码和写网页后端是两种完全不同的节奏。后端是一次性把整个服务跑起来;数据分析是"读数据 → 看看长啥样 → 改一步 → 再看看",每一步都要盯着中间结果。如果用传统脚本方式,每改一行都得重跑整个文件,光打印中间结果就能把人逼疯。

Jupyter 把这个问题解决了:它把代码切成一个个单元格,每个单元格可以独立运行,结果(表格、图表、文字)直接显示在代码下方。你可以先跑一步看结果,根据结果决定下一步写什么——这正是数据分析该有的节奏。

二、核心原理

2.1 单元格模型:代码与结果的流水线

一个 Notebook 文件由两类单元格组成:代码单元格(写 Python,运行后输出结果)和 Markdown 单元格(写说明文字,渲染成文档)。两者交替排列,就形成了一份"会执行的文档"——上面是思路说明,下面是代码和输出,分析过程可以被完整回溯。

2.2 内核机制:状态在单元格间延续

2.2 内核机制:状态在单元格间延续

Notebook 背后有一个 Python 内核(kernel)在持续运行。单元格 A 里定义的变量,单元格 B 里可以直接用——这就是为什么可以先跑"加载数据",再跑"筛选数据"而不需要重新加载。这份"会话状态"是 Notebook 高效的根本,也是踩坑的来源:如果某格报错,前面定义的变量可能已经变了,排查时建议从出错处往上一格一格回看,必要时重启内核从头跑。

2.3 两种编辑模式

Jupyter 有命令模式(按 Esc 进入,管单元格结构)和编辑模式(按 Enter 进入,管代码内容)。快捷键大多在命令模式下生效,刚上手容易按错方向。

三、工程实践要点

3.1 启动与新建

conda activate ds jupyter lab

浏览器会自动打开 Jupyter Lab 界面。左侧是文件树,右侧是工作区。点击左上角加号或右键文件夹,新建一个 Notebook,选择 Python 3 内核。

3.2 必会快捷键

快捷键 功能 模式
Shift + Enter 运行当前单元格并跳到下一个 任意
Ctrl + Enter 运行当前单元格,不跳转 任意
Esc 进入命令模式 任意
Enter 进入编辑模式 命令
A / B 在上方/下方插入单元格 命令
D + D 删除当前单元格 命令
M 把单元格变成 Markdown 命令
Y 把单元格变成代码 命令
Shift + Tab 查看函数签名与文档 编辑

💡 关键直觉:只记三个就够开工——Shift+Enter 运行、A/B 插入、M/Y 切换单元格类型。其余遇到再查。

3.3 常用 Magic 命令

Magic 命令是 Jupyter 独有的增强语法,以百分号开头:

%matplotlib inline # 让图表直接显示在单元格下方 %timeit 函数调用 # 统计一段代码的平均运行时间 %%time # 统计整个单元格的运行时间 %load_ext 扩展名 # 加载扩展,如 %load_ext autoreload %who # 列出当前会话所有变量

⚠️ 常见坑:%matplotlib inline 只对当前 Notebook 生效,换一个 Notebook 要重新执行;它不是 Python 语法,放进 .py 脚本会报错。

3.4 Notebook 与脚本、IDE 的取舍

工作方式 优势 劣势 适合场景
Jupyter Notebook 交互、可视化、可回溯 状态隐式、难测试 探索分析、教学演示
纯 Python 脚本 确定性强、易测试 中间结果不可见 定时任务、生产代码
IDE(VS Code/PyCharm) 调试器、重构、类型提示 重、启动慢 工程化开发、团队协作

现实中常见组合:用 Notebook 探索和验证思路,把验证过的逻辑抽成脚本或函数,交给 IDE 做工程化打磨。数据科学项目几乎都是这条"笔记本出思路、脚本出产品"的路径。

3.5 其他值得知道的工具

VS Code 的 Jupyter 插件可以在 IDE 里直接用 Notebook,还能打断点调试;PyCharm 专业版对 Pandas 有专门的 DataFrame 查看器;Spyder 是轻量科学计算 IDE,自带变量浏览器。工具选顺手即可,不必追求全装。

3.6 Notebook 的保存与分享

Notebook 文件本身是 JSON 格式的文档,包含代码、输出与元数据。分享时有几个讲究:

  • 分享前清空输出:输出里可能带大量数据或敏感信息,用"清空所有输出"再保存
  • 提交到代码库:Notebook 适合放文档目录,纯脚本进 src;避免把几百 MB 输出的 Notebook 提交
  • 导出报告:可以导出为 HTML 或 PDF 给别人看,不必让对方装环境

💡 关键直觉:Notebook 是"过程记录"不是"产品代码"。最终的分析结果要么固化成脚本,要么导出成报告——别让 Notebook 既当草稿纸又当交付物。

3.7 内核卡死与重启

Notebook 用久了最常见的问题是"内核忙"——某个单元格死循环或处理超大数组,长时间不返回。此时别硬等,工具栏"重启内核"能一键重置:

# 排查是否死循环:先看有没有无限循环 # while True: ... 这类代码千万别在 Notebook 里直接跑

重启内核后,所有变量清空、按顺序从头跑一遍单元格即可恢复。这也是为什么好的 Notebook 应该"从上到下能一次性跑通"——中间状态不依赖手工赋值,重跑无负担。

3.8 三种方式的实战分工

结合前面内容,给出一个真实项目的分工示例:探索期用 Notebook 快速验证清洗思路和画图样式;定型期把验证过的逻辑抽成函数放进脚本;交付期用脚本跑全量数据、出报表。这套"Notebook 出思路、脚本出产品"的分工,是数据科学团队最成熟的工作流。

核心回顾

  • 要点一:Jupyter 的核心是单元格模型,代码分格跑、结果即看即得
  • 要点二:单元格间共享内核状态,变量跨格可见,报错时从上往下回查
  • 要点三:Shift+Enter 运行、A/B 插格、M/Y 切换类型,三个快捷键就够开工
  • 要点四:Magic 命令是 Notebook 专属,%matplotlib inline 让图表内嵌显示
  • 要点五:探索用 Notebook、生产用脚本、工程用 IDE,三者是协作关系不是替代关系
  • 要点六:把验证过的分析逻辑从 Notebook 抽成函数,是数据科学工程化的第一步

环境和工作台都备好了,下一章我们正式进入第一个核心库——NumPy,看看数组这种数据结构为什么能让计算快出几个量级。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U