4、Jupyter Notebook与Lab:Jupyter的安装与启动、Notebook基本操作、魔法命令、与Git的集成、Jupyter Lab新特性
Jupyter 这个工具,说实话,是我在 MLOps 生涯里用得最频繁的「瑞士军刀」。你想想看,从数据探索、模型原型验证,到最后的报告输出,它几乎贯穿了整条链路。我个人习惯把它当作实验笔记本,而不是一个正式的开发环境。今天我们就来聊聊它的安装、核心操作,以及那些能让你效率翻倍的魔法命令。
4.1 安装与启动:别踩我踩过的坑
安装 Jupyter 其实很简单。我建议你直接用 pip 安装,别用系统自带的包管理器,容易版本冲突。
# 安装 Jupyter Notebook 和 Lab
pip install jupyter jupyterlab
# 如果你用的是 Anaconda,它已经自带了,但版本可能旧
# 我个人习惯用 pip 单独管理,干净利落
启动就更直接了:
# 启动 Notebook
jupyter notebook
# 启动 Lab(我更喜欢这个)
jupyter lab
启动后,浏览器会自动打开一个页面。你会看到文件列表,这就是你的工作目录。嗯,这里要注意:默认端口是 8888,如果被占用了,它会自动递增到 8889,别慌。
4.2 Notebook 基本操作:从单元格到内核
Notebook 的核心概念就两个:单元格和内核。单元格是你写代码或 Markdown 的地方,内核是背后执行代码的 Python 解释器。
我常用的快捷键(记住这几个就够了):
Shift + Enter:运行当前单元格,并跳到下一个Ctrl + Enter:运行当前单元格,不跳转Esc + A:在当前单元格上方插入一个新单元格Esc + B:在当前单元格下方插入一个新单元格Esc + M:把当前单元格切换为 Markdown 模式Esc + Y:切换回代码模式
为什么这些快捷键重要?因为你在做数据探索时,手不离键盘的效率远高于鼠标点来点去。我在项目中遇到过,一个同事用鼠标点了半小时才跑完一个流程,我用快捷键 5 分钟搞定。
4.3 魔法命令:让 Notebook 开挂
魔法命令是 Jupyter 最让我爱不释手的功能。它们以 % 或 %% 开头,能完成一些普通 Python 做不到的事。
我常用的几个:
| 魔法命令 | 作用 | 我的使用场景 |
|---|---|---|
%timeit |
测量代码执行时间 | 比较不同算法的性能,比如 Pandas 和 Polars 谁更快 |
%run |
运行外部 Python 脚本 | 把预处理逻辑写在 .py 文件里,在 Notebook 里直接调用 |
%load_ext |
加载扩展 | 加载 autoreload,自动重载修改过的模块 |
%%writefile |
把单元格内容写入文件 | 快速生成一个配置文件或小脚本 |
%matplotlib inline |
让图表直接显示在 Notebook 里 | 做数据可视化时必用,否则图表会弹到新窗口 |
举个例子,我经常用 %timeit 来验证我的优化是否有效:
# 比较列表推导和 for 循环的速度
%timeit [x**2 for x in range(1000)]
# 输出类似:1000 loops, best of 5: 123 µs per loop
%who 可以查看当前命名空间里所有变量。当你 Notebook 跑了一堆单元格,忘了自己定义过什么变量时,这个命令能救命。
4.4 与 Git 的集成:版本控制的艺术
Notebook 文件是 JSON 格式的,直接提交到 Git 会带来噩梦——每次运行都会改变输出和元数据,diff 看起来一团糟。我曾经因为这个问题,在团队里被吐槽过好几次。
解决方案有两个:
- 使用
nbdime工具:专门用来 diff 和 merge Notebook 文件。安装后,Git 会自动调用它。 - 清理输出后再提交:用
jupyter nbconvert --clear-output清除所有输出,只保留代码和 Markdown。
我建议你在项目根目录下创建一个 .gitignore 文件,加上这几行:
# 忽略 Notebook 的检查点文件
.ipynb_checkpoints/
# 忽略临时文件
*.pyc
__pycache__/
另外,我个人习惯在提交前用 nbstripout 这个工具自动清理输出。安装后配置一下 Git hooks,每次 commit 都会自动清理,省心不少。
4.5 Jupyter Lab 新特性:为什么我抛弃了 Notebook
Jupyter Lab 是 Notebook 的下一代产品。说实话,自从用了 Lab,我就再也没打开过传统 Notebook。它最大的变化是:多标签页、可拖拽布局、内置终端和文件浏览器。
几个让我爱不释手的新特性:
- 多面板布局:左边放代码,右边放图表,下面放终端。不用来回切换窗口。
- 内置 Markdown 预览:写文档时实时预览,不用再开一个 Typora。
- 插件系统:可以安装 Git、代码补全、变量查看器等插件。我装了
jupyterlab-git,直接在界面里做版本控制。 - 主题支持:暗色主题对眼睛友好,我长期用暗色模式。
启动 Lab 后,你会看到一个类似 IDE 的界面。左侧是文件浏览器,中间是工作区,右侧可以放各种面板。我个人习惯把文件浏览器放在左边,代码编辑器放在中间,下面开一个终端跑监控命令。
jupyterlab_code_formatter 插件,配合 Black 或 Ruff,一键格式化代码。在 MLOps 项目中,代码风格统一很重要,尤其是多人协作时。
下面这张图展示了 Jupyter Lab 的核心工作流,从数据加载到模型验证,一气呵成:
你看,从数据加载到部署,Jupyter Lab 都能覆盖。我个人习惯在 Lab 里同时打开三个面板:一个 Notebook 做探索,一个终端跑训练脚本,一个文件浏览器管理数据。这种多任务处理能力,是传统 Notebook 做不到的。
好了,关于 Jupyter 的安装、操作、魔法命令、Git 集成和 Lab 新特性,就聊到这里。这些工具用熟了,你的 MLOps 效率至少提升 30%。
公众号:蓝海资料掘金营,微信deep3321