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()

代码解读:

  1. plt.bar() 画柱状图,color 参数控制颜色;
  2. plt.text() 在柱子上方添加数值标签;
  3. 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} 分")

代码解读:

  1. LinearRegression() 创建一个线性回归模型;
  2. model.fit() 用已有数据"训练"模型,让它学习学习时长与成绩之间的关系;
  3. model.predict() 用训练好的模型进行预测。

这就是机器学习的基本范式:用数据训练模型,用模型做预测


进阶挑战:用 Python 分析真实教育数据集

  1. 从公开数据集网站(如 Kaggle)下载一份教育相关的数据集;
  2. 使用 Pandas 进行数据清洗和探索性分析;
  3. 使用 scikit-learn 训练一个分类模型(如预测学生是否会通过考试);
  4. 将分析过程和结论整理为一份 Jupyter Notebook 报告。

提示:整个过程中,你可以随时将代码报错信息粘贴给 DeepSeek,让它帮你调试。AI 辅助编程是当前最高效的学习方式之一。

results matching ""

    No results matching ""