学径XUEJING · 个人学习平台通知设置

课程库 AI 主线 阶段项目与数学直觉 › 第 6

阶段 1 里程碑测验

里程碑90 分钟

本课导读

阶段 1 的大门在此。两个月、七个单元、42 课——Python 从"会写"到"能干活",数据从"会看"到"能分析"。里程碑分两关:25 题综合测验(覆盖全部七单元,全对通关)和一道数据分析实操题(限时自测:目标 30 分钟内独立完成)。通过后,欢迎进入阶段 2:机器学习。预计 90 分钟。

全阶段知识地图

单元核心资产
U1.1 进阶语法切片/排序/推导式;字典集合;函数进阶;作用域;异常;风格
U1.2 面向对象类=模具;self=我;继承克制用;读懂别人的类(三问三板斧)
U1.3 文件自动化with open;CSV/JSON;pathlib 批量;彩排与幂等
U1.4 本地环境Python/VS Code/终端 20 命令/Git 四件套;作品上 GitHub
U1.5 pandas三板斧体检;清洗流水线;布尔筛选;groupby;merge
U1.6 可视化选型五口诀;fig/ax;装裱五步;AI 四要素点菜
U1.7 项目与数学分析报告四段;向量矩阵;导数与梯度下降

第一关:综合测验(25 题)

随堂测验0 / 25 题正确

1. nums = [3, 1, 4, 1, 5],一行取“从大到小前 3 名”:

2. [w.upper() for w in words if len(w) > 3] 的读法是?

3. resp["data"]["items"][0]["name"] 这类取值链的口诀是?

4. def f(a, b=1): 合法而 def f(a=1, b): 报错,规矩是?

5. 函数内 total = total + n 想累加全局 total,实际结果是?

6. except: 不写错误类型的危害是?

7. 类和对象的关系,以及 t1 = Task("写周报") 时自动执行的是?

8. 方法里 self.count 与裸 count 的区别是?

9. “管理员和用户”“订单和会员”分别该用?

10. 拿到陌生类/对象的探索三板斧是?

11. 日志文件每天追加记录,open 模式和保命参数是?

12. csv 模块读出的 "299" 与 json.loads 解析出的 299,差别说明?

13. 批量重命名一百个文件前的职业动作是?

14. Path("in") / "a.txt"、p.stem、p.suffix 分别是?

15. 改完代码同步到 GitHub 的完整节奏是?

16. 终端里 python organizer.py 报“找不到文件”,第一反应是?

17. .gitignore 里写 test_chaos/ 的目的是?

18. 拿到新 CSV 的“体检三板斧”和各自职责是?

19. df[(df["amount"] > 100) & (df["city"] == "上海")] 的两条铁律是?

20. 数字列混进“补录中”导致整列变字符串,抢救写法是?

21. df.groupby("city")["amount"].agg(["sum", "mean", "count"]) 的口诀读法是?

22. 订单表 merge 客户表,防“悄悄丢行”的两个动作是?

23. “12 个月的销售走势”和“12 个省份的销售对比”分别配什么图?

24. 一张“能进周报”的图,装裱清单是?

25. “数据是向量矩阵,学习是梯度下降”——展开说对吗?

第二关:数据分析实操(30 分钟自测)

模拟面试上机题。要求:不看任何参考,30 分钟内独立完成——①清洗(留行数脚印)②回答"哪个渠道的有效客单价最高"③一张装裱合格的图 ④一句合格的结论(数字+比较)。

Python
✅ 参考实现(做完再开)
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("channel_orders.csv")
print(f"原始 {len(df)} 行")

df = df.drop_duplicates()
df["channel"] = df["channel"].str.strip()
df["amount"] = pd.to_numeric(df["amount"], errors="coerce")
df = df.dropna(subset=["amount"])
print(f"清洗后 {len(df)} 行")

avg = df.groupby("channel")["amount"].mean().sort_values()

colors = ["#c9cdd4"] * len(avg)
colors[-1] = "#e8734a"
fig, ax = plt.subplots(figsize=(6, 3))
ax.barh(avg.index, avg.values, color=colors)
ax.bar_label(ax.containers[0], fmt="%.0f")
ax.set_title("搜索渠道客单价显著领先")
ax.set_xlabel("平均客单价(元)")

top = avg.index[-1]
print(f"结论:{top}渠道客单价 {avg.iloc[-1]:.0f} 元,约为最低渠道的 {avg.iloc[-1] / avg.iloc[0]:.1f} 倍。")

自评标准:11 行 → 8 行的脚印在不在;坑全避开没有(重复行、渠道空格、“咨询中”、缺失);图有没有排序/强调/标数/结论标题;结论有没有数字和比较。四项全中 = 面试上机及格线以上。

🎓 阶段 1 通关词

两个月前,你在浏览器里打出第一行 print;现在,你的 GitHub 上躺着三件真实作品,你能把一份脏数据变成一页有结论的报告,你知道机器"学习"时那行代码在做什么。

阶段 1 的能力清单,交付完毕

  • Python:进阶语法 + 面向对象 + 文件自动化——语言功夫齐了
  • 工程:本地环境 + 命令行 + Git/GitHub——开发者装备齐了
  • 数据:pandas 清洗分析 + matplotlib 表达——初级分析师的操作面齐了
  • 直觉:向量矩阵 + 梯度下降——机器学习的门票拿了

阶段 2 见:机器学习——是时候让机器替你找规律了。

提示

进入阶段 2 前的建议动作:休整两三天,把三件作品的 README 再打磨一遍,写一篇 Reflection 记录"这两个月最难的一关"——这些一手体验,未来面试时比任何证书都好用。

划选正文任意文字可高亮、批注或加入复习卡

讨论

载入中…