Jupyter Notebook 教程
Jupyter Notebook 教程
Jupyter Notebook 是一个开源的交互式笔记本环境,可以在浏览器中编写和运行代码、实时显示结果、添加说明文字与图表。它是数据科学、机器学习和科研计算领域最流行的工具之一。
为什么受欢迎
- 交互式:逐单元运行代码,即时看到输出
- 可视化:内嵌 Matplotlib 图表、表格、图片
- 文档化:Markdown 单元格混合代码与说明
- 协作分享:.ipynb 文件易于共享,支持 GitHub 渲染
核心概念
- 单元格(Cell):代码单元格或 Markdown 单元格
- 内核(Kernel):执行代码的后端进程(Python/R/Julia 等)
- 笔记本文件:扩展名 .ipynb,JSON 格式
快速开始
pip install jupyter
jupyter notebook # 启动(浏览器打开 http://localhost:8888)本教程将带你完成安装、基本使用、界面操作与进阶技巧。
Jupyter Notebook 简介
Jupyter Notebook 简介
Jupyter Notebook 诞生于 2014 年(由 IPython Notebook 演进而来),项目名称 Jupyter 来自 Julia、Python、R 三种语言的缩写,现已支持 40+ 种内核。
核心价值
- 把"写代码"变成"探索数据"的过程记录
- 代码、输出、图表、说明共存于一个文档
- 适合数据分析、教学演示、论文复现、原型验证
生态组件
| 组件 | 说明 |
|---|---|
| Jupyter Notebook | 经典笔记本界面 |
| JupyterLab | 新一代集成开发环境(推荐) |
| JupyterHub | 多用户服务器部署 |
| nbconvert | 导出 HTML/PDF/Markdown |
| Voilà | 把笔记本变成交互式应用 |
典型工作流
导入数据 → 清洗探索 → 可视化 → 建模评估 → 结论记录与 IDE 的关系
VS Code、PyCharm 都内置了对 .ipynb 的支持,你可以选择独立使用 Jupyter 或集成到日常 IDE 中。
Jupyter Notebook 安装
Jupyter Notebook 安装
安装 Jupyter 有多种方式,推荐在虚拟环境中安装以避免依赖冲突。
方式一:pip 安装
python -m venv myenv
source myenv/bin/activate # Windows: myenv\Scriptsctivate
pip install jupyter # 或 jupyterlab
jupyter --version方式二:Anaconda 发行版
Anaconda 自带 Jupyter 与大量数据科学库,适合新手:
# 从 https://www.anaconda.com/download 下载安装
conda install jupyterlab -c conda-forge
jupyter lab方式三:VS Code 集成
安装 Python 扩展后,打开 .ipynb 文件即可使用,无需单独启动 Jupyter 服务。
启动服务
jupyter notebook # 经典界面
jupyter lab # 现代界面(推荐)
# 指定端口/无浏览器
jupyter notebook --port 9999 --no-browser验证
浏览器打开后,新建 Notebook,输入 print("hello"),按 Shift+Enter 运行,看到输出即安装成功。
常见问题
- 命令找不到:确认虚拟环境已激活
- 端口占用:换端口或加 --allow-root 运行
- 内核缺失:jupyter kernelspec list 查看
Jupyter Notebook 使用
Jupyter Notebook 使用
掌握单元格操作与快捷键,是高效使用 Jupyter 的关键。
两种单元格
- 代码单元格:执行代码,显示输出
- Markdown 单元格:写标题、列表、公式、说明
运行方式
Shift+Enter 运行当前单元格并跳转下一格
Ctrl+Enter 运行当前单元格(停留)
Alt+Enter 运行并新增下方单元格常用快捷键
| 快捷键 | 功能 |
|---|---|
| a / b | 上方/下方插入单元格 |
| dd | 删除单元格 |
| m / y | 切换 Markdown / 代码 |
| z | 撤销 |
| Shift+Tab | 查看函数签名/文档 |
| Ctrl+S | 保存 |
示例会话
# 代码单元格
import pandas as pd
df = pd.DataFrame({"name":["Tom","Jerry"],"score":[88,92]})
df
# Markdown 单元格
## 数据分析
| name | score |
|------|-------|
| Tom | 88 |
| Jerry| 92 |变量持久化
所有单元格共享同一个内核,前面定义的变量后续单元格可用——这是笔记本的工作方式。
Jupyter Notebook 中文
Jupyter Notebook 中文
Jupyter 对中文的支持非常完善,本教程说明中文显示与中文文本处理的常用设置。
界面中文化
# JupyterLab 扩展安装语言包(如有)
pip install jupyterlab-language-pack-zh-CN
# 或通过设置界面选择语言图表中文显示
Matplotlib 默认字体不含中文,需要设置中文字体:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['PingFang SC', 'SimHei', 'Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
plt.plot([1,2,3],[3,1,4])
plt.title("中文标题示例")
plt.show()中文文本处理
# 分词示例(jieba)
import jieba
print(" ".join(jieba.cut("我爱编程")))
# 我 爱 编程避免乱码
- 文件读写指定 encoding="utf-8"
- 终端输出中文乱码时设置环境变量 PYTHONIOENCODING=utf-8
- PDF 导出中文需安装合适的 LaTeX 中文字体
Jupyter Notebook 界面
Jupyter Notebook 界面
了解 Jupyter(经典)与 JupyterLab 的界面布局,能让你更快上手。
经典 Notebook 界面
- 菜单栏:File/Edit/View/Insert/Cell/Kernel/Help
- 工具栏:保存、新增、剪切复制、运行、内核状态
- 单元格区域:从上到下排列的单元格
- 内核状态:右上角空心圆=空闲,实心圆=运行中
JupyterLab 界面
- 左侧文件浏览器(可拖拽上传)
- 中间工作区(多标签页)
- 右侧属性/调试面板
- 底部终端与日志
文件管理
- .ipynb 笔记本文件
- .py 脚本(可导入或转换)
- .md 文档
- 可上传数据集(csv/xlsx 等)
内核管理
# 查看内核
jupyter kernelspec list
# 内核崩溃/卡死:菜单 Kernel → Restart Kernel
# 切换内核:菜单 Kernel → Change Kernel小贴士
输出内容过多时,菜单 Cell → Current Outputs → Clear 清理;长期不用的内核可 Shutdown 释放内存。
Jupyter Notebook VS Code
Jupyter Notebook VS Code
VS Code 内置 Jupyter 支持,让"笔记本"与"代码/终端/调试"无缝协同,是许多开发者首选的方式。
为什么用 VS Code 跑笔记本
- 无需单独启动 Jupyter 服务
- 与项目文件、Git、终端同窗口
- 支持调试、代码补全、Copilot AI 助手
- 可切换本地或远程内核
基本使用
1. 安装 Python 扩展
2. 打开 .ipynb 文件(自动进入笔记本模式)
3. 选择内核(Python 解释器)
4. Shift+Enter 运行单元格常用功能
- 单元格上方按钮:运行、插入、删除
- 数据查看器:DataFrame 输出可展开浏览
- 导出:菜单 File → Export → Python Script / HTML
- 多内核:右下角选择不同解释器
远程开发
# 远程服务器(如云 GPU 机器)上跑笔记本:
# 安装 Remote-SSH 扩展 → 连接服务器 → 打开 .ipynb
# VS Code 会在远程安装 Jupyter 并自动创建内核与 JupyterLab 对比
VS Code 更强于工程化(调试/重构/版本控制),JupyterLab 更强于数据探索界面与扩展生态。两者可以并存,按场景选择。
Jupyter Notebook 技巧
Jupyter Notebook 技巧
掌握进阶技巧,让你的笔记本更专业、更高效、可复现。
1. 使用魔法命令(Magic)
%time # 统计单行执行时间
%timeit # 多次执行计时
%%timeit # 单元级计时
%matplotlib inline # 内嵌显示图表
%load_ext autoreload # 自动重载模块
%%writefile script.py # 把单元格内容写成文件2. 数据探索小技巧
df.head() # 前几行
df.info() # 概览
df.describe() # 统计摘要
df.value_counts() # 分类计数
df.corr() # 相关性矩阵3. 避免常见坑
- 按序运行!笔记本状态依赖前序单元格,分享前用 Kernel → Restart & Run All 验证
- 输出过大导致文件臃肿:清理输出再提交 Git
- 敏感数据不要硬编码在笔记本中
4. 导出分享
# 转 HTML(适合网页分享)
jupyter nbconvert --to html notebook.ipynb
# 转 Markdown
jupyter nbconvert --to markdown notebook.ipynb5. 配置默认选项
# ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.port = 8888
c.NotebookApp.notebook_dir = '/home/me/notebooks'善用这些技巧,笔记本将成为你数据工作的高效伙伴。