标量、向量与矩阵
标量表示单值,向量表示一个样本或参数集合,矩阵按行组织多个样本。
学习前需要掌握
背景与问题
输入不只是“一堆数字”。记录一个温度、一个样本的三个特征和一批样本,分别需要不同的数学对象;混淆它们,常会把样本轴和特征轴弄反。
线性模型与神经网络都依赖这些对象的形状约定。先在纸上标注维度,可以在运行前发现许多接口问题,而不必盲目试 reshape。
概念定义
标量是一个数;向量是一组按固定顺序排列的分量;矩阵是具有行列结构的二维数表。向量各分量的顺序、矩阵各轴的含义,都属于数据定义。
表格学习中常把 n 条样本、每条 d 个特征写成 n×d 的矩阵。这个约定不是所有领域的唯一写法,阅读公式或接口时应先确认采用哪一种。
直观理解
一张记录卡上的年龄、收入和访问次数组成一个特征向量;把多张卡按相同字段顺序排成行,就形成矩阵。把列换个顺序却不通知模型,数字仍然存在,含义已经变了。
两条样本与三个特征
构造矩阵的两行为 [1,2,3] 和 [4,5,6],所以 n=2、d=3。第一列是 [1,4],第一行是第一条样本,不是第一项特征的所有观测。
若权重为 [1,0,-1],两个样本的加权和均为 -2;权重长度必须等于 3。若误把矩阵转置成 3×2,再拿同一个三维权重相乘,就不符合原来的特征接口。
核心原理
单个样本向量长度 d,与含一条样本的二维矩阵 (1,d) 在接口上并不总是等价。很多估计器要求输入显式保留样本轴,因此一次预测也应使用二维结构。
矩阵乘法要求内维匹配。X 的形状为 (n,d)、w 为 (d,) 时,Xw 给出 n 个线性分数;它不是逐元素乘法,不能用星号与乘号名称混淆。
转置把行列互换,但不会自动改变“哪一条记录对应哪个标签”。如果只是为了消除报错而转置,可能让每个特征被误当作一条样本。
dtype、单位和缺失值同样重要。一个含字符串、数字和空值的表,不能仅凭二维形状就直接作为正确数值矩阵;转换时要保留列名与可追溯规则。
数学表达
核心表达
矩阵形状携带语义。运算前必须确认样本轴、特征轴和内维是否匹配。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1识别对象维度
- 2标注每个轴语义
- 3检查 shape
- 4执行运算
代码对应位置
示例 1标量、向量与矩阵:最小可验证示例:把正文原理映射为可检查的代码行为。
计算与实现步骤
- 识别对象维度
- 标注每个轴语义
- 检查 shape
- 执行运算
- 核对输出 shape
代码实现
示例 1
标量、向量与矩阵:最小可验证示例
example_01.py用途:把正文原理映射为可检查的代码行为。
import numpy as np
x = np.array([14.23, 1.71, 1065.0])
X = np.stack([x, x + 1])
print(x.shape, X.shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
把正文原理映射为可检查的代码行为。
X- 完整特征矩阵,每行一个样本、每列一个特征。
Step 1 · 1–4 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
import numpy as np
x = np.array([14.23, 1.71, 1065.0])
X = np.stack([x, x + 1])
print(x.shape, X.shape)预期输出或运行结果
向量形状 (3,),矩阵形状 (2,3)。 (3,) (2, 3)
常见错误 · 3 条
- 混淆行列
- 一维广播产生意外结果
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 特征矩阵
- 权重向量
- 批量预测
常见错误
- 混淆行列
- 一维广播产生意外结果
推荐学习资料
参考库不会生成虚假资源或无效外部链接。