深色模式
第 05 章 Python 与 AI 工具链
学习目标
理解人工智能训练中常见编程语言、Python 基础语法、数据处理库、机器学习库、深度学习框架和开发环境。理论题常考工具用途和基础代码流程。
考点地图
高频:Python 数据结构、NumPy、Pandas、Scikit-learn、PyTorch、Jupyter、VS Code、数据读取、训练流程。
1. 为什么常用 Python
Python 在 AI 中常用,因为:
- 语法简洁。
- 库生态丰富。
- NumPy/Pandas 适合数据处理。
- Scikit-learn 适合传统机器学习。
- PyTorch/TensorFlow 适合深度学习。
- Jupyter Notebook 适合实验和展示。
2. Python 基础数据结构
| 类型 | 特点 | 例子 |
|---|---|---|
| list | 有序、可变 | [1, 2, 3] |
| tuple | 有序、不可变 | (1, 2) |
| dict | 键值对 | {'a': 1} |
| set | 无序、不重复 | {1, 2, 3} |
| str | 字符串 | 'hello' |
常考:dict 查找快;set 可去重;tuple 不可变。
3. 函数与面向对象
函数用于封装可复用逻辑。
python
def add(a, b):
return a + b类用于封装对象的属性和方法。
python
class ModelConfig:
def __init__(self, lr):
self.lr = lr考试更可能考概念,不会考复杂编程。
4. NumPy
NumPy 核心是 ndarray 多维数组。
常见概念:
- shape:数组形状。
- dtype:数据类型。
- axis:操作维度。
- broadcasting:广播机制。
- vectorization:向量化计算。
例子:
python
import numpy as np
x = np.array([[1, 2], [3, 4]])
print(x.shape) # (2, 2)axis 简记:
- axis=0:沿行方向压缩,常理解为按列统计。
- axis=1:沿列方向压缩,常理解为按行统计。
5. Pandas
Pandas 常用于表格数据处理。
常见对象:
- Series:一维数据。
- DataFrame:二维表格。
常见操作:
| 任务 | 方法 |
|---|---|
| 读取 CSV | pd.read_csv() |
| 查看前几行 | df.head() |
| 查看字段类型 | df.info() |
| 缺失统计 | df.isna().sum() |
| 填充缺失 | df.fillna() |
| 删除缺失 | df.dropna() |
| 去重 | df.drop_duplicates() |
| 分组 | df.groupby() |
| 合并 | pd.merge() |
| One-Hot | pd.get_dummies() |
6. Matplotlib 和 Seaborn
用于数据可视化。
常见图:
- 折线图:趋势。
- 柱状图:类别比较。
- 直方图:分布。
- 箱线图:异常值。
- 散点图:变量关系。
- 热力图:相关性矩阵。
7. Scikit-learn
Scikit-learn 是传统机器学习常用库。
典型流程:
python
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42
)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = LogisticRegression()
model.fit(X_train_scaled, y_train)
pred = model.predict(X_test_scaled)
print(f1_score(y_test, pred))关键考试点:
fit:学习参数。transform:应用转换。fit_transform:学习并转换。- 训练集用
fit_transform,测试集只用transform。
8. PyTorch
PyTorch 是深度学习框架。
核心概念:
- Tensor:张量。
- Autograd:自动求导。
- nn.Module:神经网络模块。
- Dataset:定义数据集。
- DataLoader:批量加载数据。
- Loss:损失函数。
- Optimizer:优化器。
典型训练步骤:
- 准备数据。
- 定义模型。
- 定义损失函数。
- 定义优化器。
- 前向传播。
- 计算损失。
- 反向传播。
- 更新参数。
- 验证评估。
9. Jupyter Notebook 与 IDE
- Jupyter Notebook:适合实验、可视化、逐步运行。
- VS Code:通用代码编辑器,适合项目开发。
- PyCharm:Python IDE。
- Conda/Pip:环境和包管理。
10. 常见文件格式
| 格式 | 用途 |
|---|---|
| CSV | 表格数据,逗号分隔 |
| JSON | 半结构化数据,API 常用 |
| TXT | 普通文本 |
| XML | 半结构化标记语言 |
| Parquet | 列式存储,数据分析常用 |
| JPG/PNG | 图片 |
| WAV/MP3 | 音频 |
| MP4/AVI | 视频 |
| PT/PTH | PyTorch 模型参数常见格式 |
| ONNX | 跨框架模型交换格式 |
易错点
| 易错点 | 正确理解 |
|---|---|
| fit 和 transform 一样 | 错。fit 学参数,transform 应用参数 |
| 测试集也可以 fit scaler | 错。会数据泄漏 |
| Pandas 主要处理图像张量 | 错。Pandas 主要处理表格数据 |
| PyTorch 只用于传统机器学习 | 错。PyTorch 主要用于深度学习 |
| Jupyter 是编程语言 | 错。Jupyter 是交互式开发环境 |
例题
例题 1
Pandas 中读取 CSV 文件常用:
A. pd.read_csv()
B. pd.open_image()
C. np.train()
D. torch.sql()
答案:A。
例题 2
Scikit-learn 中对训练集标准化通常使用:
A. fit_transform
B. 只在测试集 fit
C. 删除测试集
D. 修改标签
答案:A。
例题 3
PyTorch 中自动求导机制通常称为:
A. Autograd
B. GROUP BY
C. DNS
D. Kappa
答案:A。
自测清单
- 能说出 list、tuple、dict、set 区别。
- 能说出 NumPy、Pandas、Scikit-learn、PyTorch 用途。
- 能解释 fit、transform、fit_transform。
- 能描述深度学习训练循环。
- 能识别常见数据文件格式。