通读笔记(二):第 7—11 章 —— 这本书真正的正文
接
reading-notes.md。这五章约 90k 字符,占全书 56%,是这本书不可替代的部分。
10. 第 7 章 Python 计算生态及机器学习概述(text/08-ch07-7-python.txt,18.1k 字)
这一章是全书的枢纽:前面是「怎么写 Python」,从这里开始是「怎么用 Python 做 AI」。
10.1 骨架
计算思维(周以真 2006)
↓
Python 计算生态(为什么是 Python:胶水语言、十几万第三方库)
↓
数据分析三大库 numpy / pandas / matplotlib
↓ (matplotlib 的落点:画 loss 和 acc 曲线)
机器学习概述(三步走 / 按任务分类 / 按学习方式分类)
↓
一元线性回归:模型 → 损失函数 → 梯度下降 → 智能车路径拟合
10.2 计算思维(7.1)
- 由周以真(Jeannette Wing)2006 年在论文 Computational Thinking 中提出(
:13); - 两大核心特征:抽象与自动化(
:23); - 四步:实际问题 → 数学模型 → 符号映射 → 写成算法 → 计算机执行(
:25—:31); - 「抽象是方法和手段,自动化是最终的目标」(
:33); - 计算的本质被定义成:「使用特定的符号串,按照预定的规则,经过有限步的步骤,得到一个满足预定条件的符号串」(
:35)。
10.3 Python 生态(7.2)
| 点 | 位置 |
|---|---|
| 计算生态三特点:竞争发展(赢者通吃)、相互依存、迅速更迭(活跃项目更新周期 < 1 个月,对比商业软件 3—6 个月) | :45—:49 |
| 「胶水语言」:C/C++ 写的专业库通过简单接口封装给 Python 用 | :53 |
| 模块 / 包 / 库三级 | :57—:61 |
| 标准库约 270 个 | :67 |
| 三种安装方式:pip / 官网自定义 / whl 文件离线 | :71—:83 |
| 七大应用领域各自的代表库 | :87—:99 |
10.4 numpy / pandas / matplotlib(7.3)—— 「数据分析三大剑客」
numpy 两个基本对象:ndarray(存单一数据类型的多维数组)和 ufunc(能对数组整体运算的函数)(:111)。
覆盖:创建、增删、变形(转置/展平/重整/复制)、拼接、切分、统计量、特殊常量、随机数包、线性代数包。
书里讲清楚的几组易混对照(这是这一节真正有价值的部分,表格是图片但对照说明在正文里):
| 对照 | 差别 | 位置 |
|---|---|---|
x.resize() vs np.resize() vs reshape() | 前者原地改、无返回值;np.resize 允许尺寸不一致会自动截断/拼接;reshape 有返回值、元素数必须相同、可用 -1 自动算某一维 | :153—:157 |
ravel() vs flatten() | ravel 是引用(改展平后的会影响原数组),flatten 是复制 | :163 |
np.repeat() vs np.tile() | repeat 复制每个元素(可用 axis 控制行列);tile 复制整个数组 | :167 |
pandas 的定位说得很实在:
「『数据预处理』可以说是机器学习中最耗费时间的环节」「多数研发团队不会投入太多精力从事全新机器学习模型的研究,而是针对具体的项目和特定的数据,使用现有的经典模型进行分析」(:225)。
pandas 与 numpy 的分工(:229、:231):
| numpy | pandas | |
|---|---|---|
| 核心结构 | ndarray,任意维 | series(一维)/ dataframe(二维) |
| 数据同质性 | 必须同质 | 可异构,同列同类型即可 |