课程库 › 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 题)
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 分钟内独立完成——①清洗(留行数脚印)②回答"哪个渠道的有效客单价最高"③一张装裱合格的图 ④一句合格的结论(数字+比较)。
✅ 参考实现(做完再开)
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 记录"这两个月最难的一关"——这些一手体验,未来面试时比任何证书都好用。
划选正文任意文字可高亮、批注或加入复习卡
讨论
载入中…