一、开篇:既是笔记本,也是编程环境
在python的世界里,有一个非常特殊的工具——jupyter notebook。它既不是传统意义上的编辑器,也不是ide,而是一个基于网页的交互式编程笔记本。
jupyter notebook的核心理念是:把代码、运行结果、图表、文字说明全部整合在一个"笔记本"里。你在同一个页面上写完代码,立刻看到结果,然后在下面写一段分析文字,再画一个图表——所有内容无缝衔接。
这种体验特别适合数据分析、科学计算、机器学习的探索过程。事实上,jupyter已经成为数据科学领域的事实标准工具。
二、jupyter notebook是什么
2.1 名字的由来
jupyter这个名字来自三种编程语言的首字母:
- julia
- python
- r
这三种语言是数据科学和科学计算领域最主流的语言。jupyter最初是为python开发的(当时叫ipython notebook),后来扩展到支持几十种编程语言。
2.2 核心概念:cell(单元格)
jupyter notebook的基本单位是单元格(cell)。每个单元格可以是:
- 代码单元格(code cell):里面写python代码,运行后显示输出结果
- markdown单元格(markdown cell):里面写文字(支持markdown格式),用于解释和说明
一个典型的notebook就像这样:
┌──────────────────────────────────────────────┐
│ [markdown cell] │
│ # 数据分析报告 │
│ 本报告分析了2024年第一季度的销售数据... │
├──────────────────────────────────────────────┤
│ [code cell] │
│ import pandas as pd │
│ import matplotlib.pyplot as plt │
│ df = pd.read_csv('sales.csv') │
│ df.head() │
├──────────────────────────────────────────────┤
│ [输出结果] │
│ 月份 销售额 利润 │
│ 0 1月 120000 15000 │
│ 1 2月 135000 18000 │
│ ... │
├──────────────────────────────────────────────┤
│ [markdown cell] │
│ 从上表可以看出,2月份的销售额有明显增长... │
└──────────────────────────────────────────────┘
你可以逐个运行代码单元格,每次运行的结果会保留在单元格下方,形成一个完整的分析记录。
2.3 和传统ide的区别
| 特性 | jupyter notebook | pycharm/vs code |
|---|---|---|
| 运行方式 | 逐个单元格运行 | 整个文件一起运行 |
| 结果展示 | 内嵌在代码下方 | 显示在终端/控制台 |
| 图表 | 内嵌显示 | 弹出窗口或保存为文件 |
| 文字说明 | markdown支持 | 代码注释 |
| 分享方式 | .ipynb文件(包含代码+结果+图表) | .py文件(纯代码) |
| 适用场景 | 数据分析、实验、教学 | 项目开发、工程代码 |
三、安装jupyter notebook
3.1 用pip安装(推荐)
打开命令行,执行:
pip install jupyter
如果你的电脑上有多个python版本,确保用你想要的python版本对应的pip:
# windows python -m pip install jupyter # mac python3 -m pip install jupyter
安装完成后验证:
jupyter --version # 输出类似: # ipython : 8.x.x # ipykernel : 6.x.x # jupyter_client : 8.x.x # jupyter_core : 5.x.x # notebook : 7.x.x
3.2 用anaconda安装
如果你安装了anaconda(一个数据科学平台,包含了python+众多科学计算库),jupyter notebook已经内置了,不需要额外安装。直接在anaconda navigator中点击jupyter notebook的"launch"按钮即可。
3.3 jupyter notebook vs jupyter lab
安装了jupyter之后,你实际上获得了两个工具:
- jupyter notebook:经典的笔记本界面,简单直观
- jupyter lab:新一代界面,更像一个完整的ide(有文件管理器、终端、多标签页等)
# 启动经典notebook jupyter notebook # 启动jupyter lab jupyter lab
如果你是新手,建议从jupyter notebook开始。它的界面更简单,功能刚好够用。等你熟悉之后再尝试jupyter lab,会发现它更强大。
四、启动和使用jupyter notebook
4.1 启动notebook服务器
① 打开命令行(windows用cmd或powershell,mac用terminal)
② cd 到你想要存放notebook文件的目录:
cd d:\pythonprojects\notebooks
③ 输入启动命令:
jupyter notebook
④ 命令行会出现类似这样的输出:
[i 10:30:00.123 notebookapp] serving notebooks from local directory: d:\pythonprojects\notebooks [i 10:30:00.123 notebookapp] jupyter notebook 7.x.x is running at: [i 10:30:00.123 notebookapp] http://localhost:8888/tree?token=...
⑤ 你的默认浏览器会自动打开 http://localhost:8888/tree,这就是jupyter notebook的web界面。
启动jupyter notebook的命令行窗口不要关闭!关闭它=关闭服务器=notebook无法使用。让它最小化在后台就好。
4.2 界面介绍
打开后的页面就是文件管理页(dashboard),显示当前目录下的所有文件和文件夹。
- "files"标签:文件浏览器,显示当前目录的内容
- "running"标签:查看当前正在运行的notebook
- "clusters"标签:并行计算相关(一般用不到)
在files标签中,你可以:
- 点击已有的
.ipynb文件打开它 - 点击右上角的"new" → “python 3” 创建新的notebook
4.3 创建你的第一个notebook
① 点击右上角 “new” → “python 3 (ipykernel)”,创建一个新笔记本。
② 浏览器会打开一个新标签页,标题栏显示"untitled"。
③ 页面中间有一个空白的代码单元格,光标在里面闪烁。
④ 在单元格中输入以下代码:
print('欢迎来到jupyter notebook的世界!')
# 做一些计算
result = 0
for i in range(1, 101):
result += i
print(f'1到100的和是:{result}')
# 列出当前目录下的文件
import os
for file in os.listdir('.'):
print(f' 📄 {file}')⑤ 按 shift + enter(或点击工具栏的▶"运行"按钮),执行这个单元格。
⑥ 单元格下方出现输出结果,同时自动创建了一个新的空单元格。
✅ 恭喜,你已经创建并运行了你的第一个jupyter notebook!
4.4 重命名notebook
点击页面顶部的标题"untitled"→输入新名字→点击"rename"。
# 也可以在notebook的第一个代码单元格中查看当前文件名 import os print(os.path.basename(os.getcwd()))
五、两种单元格详解
5.1 代码单元格(code cell)
代码单元格就是你写python代码的地方。选中单元格后,它的边框会变成蓝色(命令模式)或绿色(编辑模式)。
在单元格中写代码:
# 这是一个代码单元格,可以写任何python代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 生成一些数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图表
plt.figure(figsize=(10, 4))
plt.plot(x, y, 'b-', linewidth=2, label='sin(x)')
plt.plot(x, np.cos(x), 'r--', linewidth=2, label='cos(x)')
plt.grid(true, alpha=0.3)
plt.legend()
plt.title('正弦和余弦函数')
plt.show()运行后,图表会直接显示在单元格下面。
⌨️ 代码单元格的一个重要特性:变量在单元格之间是共享的。你在第一个单元格定义的变量,在第二个单元格中可以直接使用:
# 单元格1 name = '小明' age = 25
# 单元格2(在单元格1之后运行)
print(f'{name}今年{age}岁') # 可以访问name和age!但这也意味着:单元格的运行顺序很重要。如果你跳着运行单元格(比如先运行单元格3再运行单元格1),可能会导致变量未定义的错误。notebook的工具栏左侧会显示每个单元格的执行序号(如 [1]、[2]),帮你追踪执行顺序。
5.2 markdown单元格
markdown单元格用来写文字说明(不是代码,不能执行python命令)。在单元格中直接写markdown格式的文字。
切换单元格类型:选中一个单元格,在工具栏上的下拉菜单中选择 “code” 或 “markdown”。
要编辑markdown单元格,双击它即可进入编辑模式。写完文字后按 shift + enter 渲染显示。
markdown支持的语法:
# 一级标题 ## 二级标题 ### 三级标题 **加粗文字** *斜体文字* - 无序列表项1 - 无序列表项2 1. 有序列表项1 2. 有序列表项2 [链接文字](https://python.org)  `行内代码` > 引用文字 --- 水平分割线
在notebook中,markdown单元格还支持数学公式(用latex语法,用$包裹):
行内公式:$e = mc^2$
独立公式:
$$
\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
这在写数据分析报告时非常有用。
六、魔法命令(magic commands)
jupyter notebook里有一种特殊的命令,以 % 开头,叫做"魔法命令"(magic commands)。它们不是python语法,而是jupyter提供的额外功能。
6.1 行魔法命令(以%开头)
# %timeit - 测量代码执行时间 %timeit sum(range(1000000)) # 输出:9.23 ms ± 98.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) # %time - 测量单次运行时间 %time result = sum(range(1000000)) # 输出:cpu times: user 22 ms, sys: 0 ns, total: 22 ms # %matplotlib inline - 让matplotlib图表内嵌显示在notebook中 %matplotlib inline # %run - 运行外部python脚本 %run hello.py # %who - 列出当前所有已定义的变量 %who # %whos - 更详细地列出变量(包括类型和值) %whos # %reset - 清除所有变量 %reset # %pwd - 显示当前工作目录 %pwd # %ls - 列出当前目录的文件 %ls # %history - 查看命令历史 %history
6.2 单元格魔法命令(以%%开头)
作用于整个单元格:
%%time
# 测量整个单元格的运行时间
import time
result = 0
for i in range(10000000):
result += i
time.sleep(1)
print(f'结果:{result}')%%writefile my_script.py
# 将单元格内容写入文件
def hello():
print('这个函数被写入了my_script.py文件')%%bash # 在notebook中运行bash命令(mac/linux) echo "当前目录:$(pwd)" ls -la
6.3 其他实用魔法命令
# 查看函数的源代码 import os os.path.join?? # 或者 ??os.path.join # 查看对象的帮助文档 len? # 在notebook中安装包 !pip install requests # 执行系统命令 !dir # windows !ls # mac/linux
七、快捷操作与技巧
7.1 两种模式
jupyter notebook有命令模式和编辑模式,这是理解操作的关键:
- 命令模式(蓝色边框):按
esc进入。在此模式下的按键是给notebook的命令(如创建、删除、移动单元格) - 编辑模式(绿色边框):按
enter进入。在此模式下可以在单元格中打字
7.2 常用快捷键(命令模式下)
| 快捷键 | 功能 |
|---|---|
enter | 进入编辑模式 |
a | 在当前单元格上方插入新单元格(above) |
b | 在当前单元格下方插入新单元格(below) |
d + d | 删除当前单元格(按两次d) |
x | 剪切当前单元格 |
c | 复制当前单元格 |
v | 粘贴 |
z | 撤销删除 |
y | 切换到代码单元格类型 |
m | 切换到markdown单元格类型 |
shift + enter | 运行当前单元格并选中下一个 |
ctrl + enter | 运行当前单元格并保持选中 |
alt + enter | 运行当前单元格并在下方插入新单元格 |
7.3 快捷键(编辑模式下)
| 快捷键 | 功能 |
|---|---|
ctrl + enter | 运行当前单元格 |
shift + enter | 运行并跳转到下一个单元格 |
esc | 进入命令模式 |
tab | 代码补全 |
shift + tab | 显示函数文档 |
常用快捷键每天用,一周左右就能形成肌肉记忆。刚开始记不住也没关系,用鼠标操作一样能完成所有工作。
八、导出和分享
8.1 导出为不同格式
jupyter notebook支持导出为多种格式:
点击 file → save and export notebook as...:
- html(.html):可以在浏览器中查看,不需要python环境
- pdf(.pdf):适合打印或正式报告
- markdown(.md):适合发布到github
- python脚本(.py):提取所有代码单元格,转为可执行的python文件
- reveal.js幻灯片:用notebook做ppt演示
8.2 导出为pdf前需要准备
导出pdf需要安装latex(一个排版系统)。如果只想简单分享,导出为html然后再用浏览器"打印→另存为pdf"是最方便的方式。
8.3 在github上展示
github原生支持渲染 .ipynb 文件!你只需把 .ipynb 文件推送到github仓库中,它就能在网页上直接显示完整的notebook内容(包括代码、输出和图表)。
这也是为什么很多数据分析项目选择用jupyter notebook——分享起来非常方便。
九、jupyter适用的场景
9.1 最适合的场景
✅ 数据探索与分析:一边写代码,一边看结果,一边写分析,三位一体
✅ 学习python:可以分知识点逐个单元格运行,实验性很强
✅ 教学演示:老师边讲边写代码,学生实时看到效果
✅ 科学计算:公式推导配代码验证,一步到位
✅ 机器学习实验:数据处理→模型训练→结果评估→可视化,全在一个文档里
✅ 数据报告:把分析过程和结论整合成一份可读的文档
9.2 不太适合的场景
❌ 大型工程项目:代码分散在多个单元格中,不利于版本控制和模块化管理
❌ web后端开发:需要持续运行的服务器程序
❌ gui桌面应用:依赖事件的界面程序
❌ 生产环境部署:notebook不适合作为生产环境的运行方式
十、本篇小结
jupyter notebook是一个独特的交互式编程环境,它把代码、结果、图表和文字融合在一起。核心要点:
- 单元格(cell) 是基本单位,分为code(代码)和markdown(文字)两种
- 变量在单元格间共享,但要注意执行顺序
- 魔法命令(如
%timeit、%matplotlib inline)提供额外功能 - 两种模式:命令模式(蓝色)和编辑模式(绿色),各有不同的快捷键
- 最佳场景:数据分析、机器学习、科学计算、教学演示
以上就是python工具之jupyter notebook的安装与使用指南的详细内容,更多关于jupyter notebook安装与使用的资料请关注代码网其它相关文章!
发表评论