6.3 Python 数据分析初探(进阶选修)
本节面向有编程兴趣的同学。如果你暂时不打算学习编程,可以跳过本节,不影响后续章节的学习。
一、为什么选择 Python?
Python 是数据分析和人工智能领域最主流的编程语言,原因在于:
- 语法简洁:接近自然语言,入门门槛低;
- 生态丰富:拥有 NumPy、Pandas、scikit-learn 等强大的数据科学库;
- AI 友好:可以直接让 DeepSeek 帮你编写和调试 Python 代码。
二、环境准备
推荐使用 Google Colab(colab.research.google.com),无需在本地安装任何软件,打开浏览器即可编写和运行 Python 代码。
📷 【截图位置】:Google Colab 界面截图,展示新建笔记本的操作和代码单元格(建议尺寸:宽度占满页面)
三、NumPy 与 Pandas 基础
NumPy:高效的数值计算
import numpy as np
# 创建一组成绩数据
scores = np.array([78, 85, 92, 66, 73, 88, 95, 70, 82, 90])
print(f"平均分:{scores.mean():.1f}")
print(f"最高分:{scores.max()}")
print(f"最低分:{scores.min()}")
print(f"标准差:{scores.std():.1f}")
Pandas:表格数据处理利器
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv("成绩表.csv")
# 查看前 5 行
print(df.head())
# 按班级分组计算平均分
print(df.groupby("班级")["总分"].mean())
# 筛选不及格的学生
failed = df[df["总分"] < 60]
print(f"不及格人数:{len(failed)}")
提示:不需要记住所有函数。遇到不会写的代码,直接用自然语言描述需求,让 DeepSeek 帮你生成。例如:"用 Pandas 读取一个 CSV 文件,按班级分组统计各科平均分,并生成柱状图。"
四、Matplotlib:用 Python 画图表
Matplotlib 是 Python 中最常用的可视化库。配合 Pandas,你可以用几行代码生成专业的数据图表。
实操演示:用 DeepSeek 生成可视化代码
假设你想把 6.1 节的成绩数据画成柱状图。你不需要记住 Matplotlib 的语法——直接告诉 DeepSeek 你想要什么:
请用 Python 的 matplotlib 库,根据以下数据画一个柱状图:
- 科目:语文、数学、英语
- 均值:77.5、80.3、79.4
要求:中文标题"各科平均分对比",柱子用不同颜色,显示数值标签。
DeepSeek 会生成类似以下代码:
import matplotlib.pyplot as plt
# 设置中文字体(Google Colab 环境)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
subjects = ['语文', '数学', '英语']
means = [77.5, 80.3, 79.4]
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1']
plt.figure(figsize=(8, 5))
bars = plt.bar(subjects, means, color=colors)
# 在柱子上方显示数值
for bar, val in zip(bars, means):
plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.5,
f'{val}', ha='center', fontsize=12)
plt.title('各科平均分对比', fontsize=16)
plt.ylabel('平均分')
plt.ylim(70, 85)
plt.show()
代码解读:
plt.bar()画柱状图,color参数控制颜色;plt.text()在柱子上方添加数值标签;plt.show()显示图表。
将这段代码复制到 Google Colab 中运行,你就能看到一张带有中文标题和数值标签的柱状图。
小贴士:如果运行时中文显示为方块,说明字体设置有问题。在 Colab 中可以先运行
!apt-get install fonts-noto-cjk安装中文字体,然后重启运行时。
五、scikit-learn:机器学习初体验
scikit-learn 是 Python 中最常用的机器学习库。以下用一个简单的例子演示"线性回归"——根据学习时长预测考试成绩。
from sklearn.linear_model import LinearRegression
import numpy as np
# 训练数据:学习时长(小时)与考试成绩
hours = np.array([2, 3, 4, 5, 6, 7, 8]).reshape(-1, 1)
scores = np.array([55, 62, 68, 75, 80, 85, 90])
# 训练模型
model = LinearRegression()
model.fit(hours, scores)
# 预测:学习 5.5 小时能考多少分?
predicted = model.predict([[5.5]])
print(f"预测成绩:{predicted[0]:.1f} 分")
print(f"每多学 1 小时,成绩约提升 {model.coef_[0]:.1f} 分")
代码解读:
LinearRegression()创建一个线性回归模型;model.fit()用已有数据"训练"模型,让它学习学习时长与成绩之间的关系;model.predict()用训练好的模型进行预测。
这就是机器学习的基本范式:用数据训练模型,用模型做预测。
▲ 进阶挑战:用 Python 分析真实教育数据集
- 从公开数据集网站(如 Kaggle)下载一份教育相关的数据集;
- 使用 Pandas 进行数据清洗和探索性分析;
- 使用 scikit-learn 训练一个分类模型(如预测学生是否会通过考试);
- 将分析过程和结论整理为一份 Jupyter Notebook 报告。
提示:整个过程中,你可以随时将代码报错信息粘贴给 DeepSeek,让它帮你调试。AI 辅助编程是当前最高效的学习方式之一。