AI 学习路线 02:学习 AI 前,需要掌握哪些 Python 和数据处理基础?
AI 学习路线 02:学习 AI 前,需要掌握哪些 Python 和数据处理基础?
前言
上一篇我们先建立了 AI 的整体认知:AI、机器学习、深度学习、大模型是什么关系,以及模型、参数、训练、推理这些基础概念。
这一篇开始进入更实操的部分:Python 与数据处理。
很多人学 AI 时,会急着去看模型、算法和大模型框架。但真实项目里,经常不是一上来就训练模型,而是先面对一堆数据:
CSV 文件
Excel 表格
数据库导出的明细
缺失值
重复值
异常值
字段类型混乱
标签不准确
所以,学习 AI 之前,至少要具备一套基础能力:
会写 Python
-> 会处理数据
-> 会分析数据
-> 会可视化数据
-> 能为机器学习或大模型应用准备数据
这篇文章会讲:
- 为什么 AI 学习常用 Python
- Python 开发环境由哪些部分组成
- NumPy、Pandas、Matplotlib 分别做什么
- 数据清洗、探索和可视化的基本流程
- 用一段小代码完成一次最小数据分析
一、为什么学习 AI 常用 Python?
Python 在 AI 领域常用,不是因为它语法最复杂,而是因为生态完整。
| 方向 | 常用工具 |
|---|---|
| 数据处理 | Pandas、NumPy |
| 数据可视化 | Matplotlib、Seaborn |
| 机器学习 | Scikit-learn |
| 深度学习 | PyTorch、TensorFlow |
| 大模型应用 | OpenAI SDK、LangChain、LlamaIndex |
| Web API | FastAPI、Flask |
| 自动化脚本 | Python 标准库 |
对于 AI 初学者来说,不需要一开始就精通 Python 底层,但至少要能:
- 写基础脚本
- 处理表格数据
- 安装第三方库
- 读写文件
- 看懂常见数据分析代码
- 把数据整理成模型能使用的格式
二、Python 开发环境由哪些部分组成?

可以把 Python 开发环境理解成四层:
Python 解释器
-> pip 包管理
-> venv / conda 虚拟环境
-> VS Code / Jupyter / PyCharm
| 工具 | 作用 |
|---|---|
| Python 解释器 | 真正运行 Python 代码 |
| pip | 安装第三方库 |
| venv / conda | 隔离不同项目依赖 |
| VS Code / PyCharm | 写正式项目代码 |
| Jupyter Notebook | 做实验、数据分析、学习记录 |
为什么需要虚拟环境?

假设你有两个项目:
项目 A 需要 pandas 1.x
项目 B 需要 pandas 2.x
如果都安装到系统 Python 里,就很容易冲突。
虚拟环境的作用是:
每个项目都有自己的依赖环境,互不影响。
AI 项目尤其需要注意环境,因为 numpy、pandas、torch、scikit-learn 等库之间经常存在版本兼容问题。
Windows PowerShell 中常见命令:
python --version
python -m pip --version
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install numpy pandas matplotlib jupyter
三、AI 初学者 Python 要掌握到什么程度?

第一阶段重点不是写复杂框架,而是能围绕数据处理完成基本任务。
| 知识点 | 要掌握什么 |
|---|---|
| 变量 | 字符串、数字、布尔值 |
| 条件判断 | if / elif / else |
| 循环 | for / while |
| 数据结构 | list、dict、tuple、set |
| 函数 | def、参数、返回值 |
| 文件读写 | txt、csv、json |
| 异常处理 | try / except |
| 模块 | import、pip install |
| 虚拟环境 | venv、conda |
一个很小的例子:
scores = [88, 92, 76, 95]
def average(values):
return sum(values) / len(values)
avg = average(scores)
if avg >= 90:
print("整体表现优秀")
else:
print("还可以继续提升")
print("平均分:", avg)
这段代码包含了:
列表 -> 函数 -> 条件判断 -> 输出
这些基础,后面做数据分析时会反复用到。
四、NumPy、Pandas、Matplotlib 分别做什么?

先记住一句话:
NumPy 负责“算”,Pandas 负责“整理表格”,Matplotlib 负责“画出来”。
| 工具 | 核心作用 | 可以怎么理解 |
|---|---|---|
| NumPy | 数组、矩阵、数值计算 | AI 里的计算底座 |
| Pandas | 表格数据读取、清洗、分析 | Python 版加强 Excel |
| Matplotlib | 数据可视化 | 把数据画成图 |
1. NumPy:数组和矩阵计算
import numpy as np
scores = np.array([80, 90, 100])
print(scores.mean()) # 平均值
print(scores.max()) # 最大值
print(scores + 5) # 每个分数都加 5
AI 里很多东西最终都会变成数字:
文本 -> 向量
图片 -> 矩阵
音频 -> 数组
模型参数 -> 大量数字
所以 NumPy 是理解后续向量、矩阵、特征、模型输入的重要基础。
2. Pandas:处理表格数据
Pandas 最核心的对象是 DataFrame,可以先把它理解成一张表。
import pandas as pd
data = [
{"city": "北京", "product": "手机", "sales": 12000, "quantity": 3},
{"city": "上海", "product": "电脑", "sales": 18000, "quantity": 2},
{"city": "深圳", "product": "手机", "sales": 15000, "quantity": 4},
]
df = pd.DataFrame(data)
print(df.head()) # 查看前几行
print(df.shape) # 行数、列数
print(df.describe()) # 数值列统计
常见操作:
print(df["sales"]) # 取一列
print(df[df["sales"] > 10000]) # 条件筛选
print(df.groupby("city")["sales"].sum()) # 按城市汇总销售额
3. Matplotlib:把数据画出来
import matplotlib.pyplot as plt
city_sales = df.groupby("city")["sales"].sum()
city_sales.plot(kind="bar", title="不同城市销售额")
plt.xlabel("城市")
plt.ylabel("销售额")
plt.tight_layout()
plt.show()
图表可以帮助我们更快发现趋势、分布和异常。
五、数据处理基本流程

常见流程是:
读取数据
-> 查看字段
-> 检查缺失值、异常值、重复值
-> 做基础统计
-> 可视化分布和关系
-> 生成训练需要的特征和标签
真实 AI 项目里,很多时间不是花在训练模型上,而是花在数据上。
因为:
脏数据 -> 坏模型
好数据 -> 模型才有机会学到规律
六、最小实战:用 Pandas 分析一份销售数据
下面这段代码完成一个很小但完整的数据分析流程:
构造数据 -> 变成 DataFrame -> 查看数据 -> 检查缺失值 -> 分组统计 -> 画图
import pandas as pd
import matplotlib.pyplot as plt
data = [
{"date": "2026-01-01", "city": "北京", "product": "手机", "sales": 12000, "quantity": 3},
{"date": "2026-01-01", "city": "上海", "product": "电脑", "sales": 18000, "quantity": 2},
{"date": "2026-01-02", "city": "北京", "product": "耳机", "sales": 800, "quantity": 5},
{"date": "2026-01-02", "city": "深圳", "product": "手机", "sales": 15000, "quantity": 4},
{"date": "2026-01-03", "city": "上海", "product": "耳机", "sales": 1200, "quantity": 6},
]
df = pd.DataFrame(data)
print("数据预览:")
print(df.head())
print("数据形状:")
print(df.shape)
print("缺失值统计:")
print(df.isna().sum())
print("重复行数量:")
print(df.duplicated().sum())
city_sales = df.groupby("city")["sales"].sum().sort_values(ascending=False)
print("按城市统计销售额:")
print(city_sales)
city_sales.plot(kind="bar", title="不同城市销售额")
plt.xlabel("城市")
plt.ylabel("销售额")
plt.tight_layout()
plt.show()
示例图表效果:

这张图的目标不是“好看”,而是让我们更直观看出不同城市销售额的差异。
七、数据清洗到底在清什么?
数据清洗不是把数据“美化”,而是减少脏数据对模型的干扰。
常见问题包括:
| 问题 | 例子 | 可能影响 |
|---|---|---|
| 缺失值 | 年龄为空、价格为空 | 统计失真,模型无法使用 |
| 重复值 | 同一订单出现两次 | 销售额被重复计算 |
| 异常值 | 年龄 999、价格 -1 | 模型学到错误规律 |
| 类型错误 | 金额是字符串 "1200" |
无法做数值计算 |
| 标签错误 | 垃圾邮件被标成正常邮件 | 模型直接学错 |
一个有问题的数据例子
import pandas as pd
data = [
{"user_id": 1, "age": 25, "city": "北京", "spend": 1200, "is_vip": 1},
{"user_id": 2, "age": None, "city": "上海", "spend": 800, "is_vip": 0},
{"user_id": 3, "age": 999, "city": "深圳", "spend": -50, "is_vip": 0},
{"user_id": 3, "age": 999, "city": "深圳", "spend": -50, "is_vip": 0},
{"user_id": 4, "age": 32, "city": None, "spend": 1500, "is_vip": 1},
]
df = pd.DataFrame(data)
print(df)
这里有:
| 问题 | 对应数据 |
|---|---|
| 缺失值 | age=None、city=None |
| 异常值 | age=999、spend=-50 |
| 重复值 | user_id=3 出现两次 |
| 业务问题 | 消费金额不应为负数 |
简单清洗示例
# 1. 删除重复行
df = df.drop_duplicates()
# 2. 把明显异常的年龄设为缺失
df.loc[df["age"] > 120, "age"] = None
# 3. 把不合理的消费金额设为缺失
df.loc[df["spend"] < 0, "spend"] = None
# 4. 用中位数填充年龄
df["age"] = df["age"].fillna(df["age"].median())
# 5. 用均值填充消费金额
df["spend"] = df["spend"].fillna(df["spend"].mean())
# 6. 城市缺失用“未知”填充
df["city"] = df["city"].fillna("未知")
print(df)
注意:真实项目中不能机械填充,要结合业务含义。
例如年龄缺失是否能用中位数填,要看业务场景;负消费金额是退款、录入错误,还是系统字段含义不同,也需要确认。
八、可视化图表怎么选?
常见图表用途:

| 图表 | 适合看什么 | 例子 |
|---|---|---|
| 柱状图 | 类别之间对比 | 不同城市销售额 |
| 折线图 | 时间趋势 | 每日销售额变化 |
| 散点图 | 两个变量之间关系 | 年龄和消费金额的关系 |
| 直方图 | 一个数值变量的分布 | 用户年龄分布 |
| 箱线图 | 异常值和分布范围 | 不同城市消费异常值 |
一个容易混淆的点:
柱状图:类别对比
直方图:数值分布
比如:
- 不同城市销售额:柱状图
- 用户消费金额分布:直方图
九、数据清洗和 AI 模型的关系
模型不是魔法。它会从你给的数据中学规律。
如果数据中有大量错误:
错误标签
异常数值
重复样本
缺失字段
不一致格式
模型就可能学到错误规律。
| 数据问题 | 可能后果 |
|---|---|
| 重复高消费用户很多 | 模型误以为高消费人群更多 |
| 标签标错 | 分类模型直接学反 |
| 缺失值未处理 | 模型训练报错或结果偏差 |
| 异常值未处理 | 回归模型被极端值带偏 |
| 数据泄露 | 测试效果虚高,上线效果很差 |
这里的“数据泄露”不是指隐私泄露,而是指训练时用了预测时本不该知道的信息。
例如:
目标:预测用户未来是否会流失
错误特征:用户最终是否注销
如果把未来才知道的信息放进训练特征里,测试效果可能非常好,但上线后会失效。
十、面试中可以怎么回答
1. 为什么学习 AI 常用 Python?
Python 语法相对简单,而且 AI 生态非常完整。
数据处理有 NumPy 和 Pandas,可视化有 Matplotlib 和 Seaborn,传统机器学习有 Scikit-learn,深度学习有 PyTorch 和 TensorFlow,大模型应用也有成熟 SDK。
所以学习 AI 时,Python 是最常用的主力语言。
2. NumPy 和 Pandas 有什么区别?
NumPy 更偏底层数值计算,核心是数组和矩阵。
Pandas 更偏表格数据处理,核心是 DataFrame 和 Series。
在 AI 项目中,NumPy 常用于向量和矩阵计算,Pandas 常用于读取、清洗、统计和构造特征。
3. 为什么建模前要做数据清洗?
因为缺失值、重复值、异常值、类型错误和标签错误都会影响模型学习。
如果数据质量差,模型可能学到错误规律,评估结果也可能不可靠。
所以建模前通常要先做数据检查、清洗、统计和可视化。
4. EDA 是什么?
EDA 是探索性数据分析。
它的目标是在建模前先理解数据,包括字段含义、数据规模、缺失值、重复值、异常值、分布情况和变量关系。
常见方法包括 head、shape、info、describe、isna、duplicated,以及各种可视化图表。
5. 数据泄露是什么?
机器学习中的数据泄露通常指训练时使用了预测时不该知道的信息。
这会让模型在测试集上表现虚高,但上线后效果变差。
例如预测用户未来是否流失时,把用户最终是否注销这种未来信息作为特征,就是典型数据泄露。
十一、常见误区
| 误区 | 更准确的理解 |
|---|---|
| 学 AI 必须先精通 Python | 初期先掌握数据处理和脚本能力即可 |
| Jupyter 可以替代所有项目代码 | Notebook 适合实验,正式项目仍需要工程结构 |
| Pandas 和 NumPy 是一回事 | NumPy 偏数值计算,Pandas 偏表格分析 |
| 数据处理只是辅助工作 | 数据质量经常决定模型上限 |
| 直接训练模型就行 | 应先理解数据、清洗数据、评估数据质量 |
| 缺失值都可以用平均值填 | 缺失值处理要结合业务含义 |
| 画图只是为了好看 | 可视化是为了发现趋势、分布和异常 |
| 测试集效果好就一定能上线 | 还要排查数据泄露、样本偏差和业务变化 |
十二、自测题
题目
Q1. Python 在 AI 领域常用的主要原因是什么?
A. Python 不支持第三方库
B. AI 生态完整,数据处理、机器学习、深度学习和大模型工具丰富
C. Python 只能做网页样式
D. Python 不能处理数据
Q2. 虚拟环境的主要作用是什么?
A. 替代所有代码编辑器
B. 删除项目文件
C. 隔离不同项目的依赖,避免库版本冲突
D. 让电脑无法运行 Python
Q3. NumPy 最核心的用途是什么?
A. 管理浏览器插件
B. 发送邮件
C. 写网页样式
D. 数组、矩阵和数值计算
Q4. Pandas 中 DataFrame 更像什么?
A. 一个显卡核心
B. 一张表格
C. 一个网页按钮
D. 一个压缩包
Q5. df.isna().sum() 常用于做什么?
A. 绘制折线图
B. 安装 pandas
C. 统计每列缺失值数量
D. 删除重复行
Q6. df.drop_duplicates() 的作用是什么?
A. 删除重复行
B. 填充缺失值
C. 绘制柱状图
D. 修改 Python 版本
Q7. 直方图通常适合观察什么?
A. 类别数量对比
B. 时间趋势
C. 一个数值变量的分布
D. 两个变量之间关系
Q8. 数据泄露在机器学习中通常指什么?
A. 数据文件太大
B. 把数据库密码泄露给别人
C. 图表没有标题
D. 训练时使用了预测时不该知道的信息,导致测试效果虚高
Q9. 为什么不能机械地处理缺失值?
A. 因为缺失值处理要结合业务含义,不同字段和场景处理方式可能不同
B. 因为 pandas 不支持缺失值
C. 因为缺失值一定不能处理
D. 因为填充缺失值会删除所有数据
Q10. 如果标签大量标错,最可能造成什么影响?
A. Matplotlib 不能画图
B. Python 解释器无法启动
C. 模型可能学到错误规律
D. 模型一定训练得更快
答案与解析
| 题号 | 答案 | 解析 |
|---|---|---|
| Q1 | B | Python 在 AI 领域生态完整,覆盖数据处理、机器学习、深度学习和大模型应用。 |
| Q2 | C | 虚拟环境用于隔离不同项目依赖,减少版本冲突。 |
| Q3 | D | NumPy 主要用于数组、矩阵和数值计算。 |
| Q4 | B | DataFrame 可以理解成 Python 里的表格。 |
| Q5 | C | isna().sum() 常用于统计每列缺失值数量。 |
| Q6 | A | drop_duplicates() 用于删除重复行。 |
| Q7 | C | 直方图用于观察一个数值变量的分布。 |
| Q8 | D | 数据泄露是训练时用了预测时不该知道的信息,导致测试效果虚高。 |
| Q9 | A | 缺失值处理要结合字段含义和业务场景。 |
| Q10 | C | 标签错误会让模型学习到错误规律。 |
十三、本篇小结
这篇文章主要讲了 AI 学习前需要掌握的 Python 和数据处理基础。
可以记住这几句话:
- Python 是 AI 学习的主力语言,关键原因是生态完整。
- 开发环境可以理解为解释器、pip、虚拟环境和编辑器四层。
- 虚拟环境用于隔离项目依赖,减少版本冲突。
- NumPy 负责数组、矩阵和数值计算。
- Pandas 负责表格数据读取、清洗、筛选、统计。
- Matplotlib 负责把数据画成图,帮助观察趋势和异常。
- 拿到数据后不要急着建模,要先做 EDA。
- 数据清洗重点关注缺失值、重复值、异常值、类型错误和标签错误。
- 可视化不是为了好看,而是为了理解数据。
- 数据质量经常决定模型效果上限。
十四、下一篇预告
下一篇准备进入 AI 背后的数学基础:
AI 学习路线 03:线性代数、概率统计、梯度下降到底有什么用?
会重点讲:
- 为什么文本、图片、音频都能变成向量
- 向量、矩阵、张量在 AI 中的作用
- 概率统计为什么和模型预测有关
- 损失函数、梯度下降、学习率到底怎么理解
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)