# Day 3｜向量、矩阵与 NumPy：把数据变成可计算的结构

文本、图像、用户属性与模型参数，都可以组织成数字数组。向量提供表示，矩阵组织关系，NumPy 把这些运算落实到程序。

## 一、向量空间：多维数据的语言

### 1. 向量、线性组合与维数

向量可写作 $x=(x_1,\ldots,x_n)^T$。向量相加、乘以标量后仍留在同一空间，是向量空间的基本结构。

$a_1v_1+\cdots+a_kv_k$ 是线性组合。如果其中没有向量能由其余向量线性表示，就称它们线性无关。一组基提供独立的坐标方向，基向量个数就是空间维数。

**维数刻画独立方向的数量。** 这为理解冗余特征、矩阵的秩和降维打下基础。

### 2. 点积、长度与相似度

$$
x^Ty=\sum_i x_i y_i,\qquad \|x\|_2=\sqrt{x^Tx}.
$$

点积可以表示加权求和；非零向量的余弦相似度为 $x^Ty/(\|x\|_2\|y\|_2)$，更关注方向而非长度。它常用于文本检索和推荐中的相似度比较。

外积 $xy^T$ 则产生一个矩阵，描述两个向量分量之间的组合关系；两个向量都非零时，它的秩为 1。

## 二、特征、Embedding 与权重

### 1. 特征向量：把属性写成数字

例如，用“颜色编码、香味强度、花瓣长度”描述一朵花。特征可以由人工设计，也可以由模型提取，并不天然限定为低维。

这里的 feature vector 与线性代数中的 eigenvector 都可能译为“特征向量”，但概念不同：后者满足 $Av=\lambda v$。

### 2. Embedding：学习得到的表示

Embedding 把词语、图像或用户映射到向量空间。信息通常分布在多个维度中，单个坐标未必有清晰的人工含义。

合适的训练目标可让相关对象在空间中靠近，因此能服务于语义搜索、聚类和推荐；“向量接近”的含义仍取决于训练方式与距离度量。

### 3. 权重向量：模型如何组合特征

线性模型 $y=w^Tx+b$ 中，w 决定各输入分量如何参与输出。特征向量描述样本，权重向量属于模型参数，训练就是调整这些参数。

## 三、矩阵：方程组与线性变换

### 1. 用一个式子组织多个关系

$$
Ax=b.
$$

矩阵 A 记录系数，x 是未知量，b 是输出。几何上，$Ax$ 也是 A 的各列按 x 中的系数作线性组合。

### 2. 矩阵乘法与变换顺序

若 $A\in\mathbb R^{m\times n}$、$B\in\mathbb R^{n\times p}$，则 $AB\in\mathbb R^{m\times p}$。乘法可表示连续执行两个变换，通常 $AB\ne BA$。

矩阵乘法满足适当维度下的分配律。**不满足交换律，不等于不满足分配律。**

### 3. 最小二乘：没有精确解时寻找最佳拟合

观测方程可能互相不完全一致，这时求：

$$
\min_x\|Ax-b\|_2^2.
$$

它寻找残差平方和最小的参数，是线性回归、标定和数据拟合的基础。

## 四、NumPy：数组运算的实践入口

`ndarray` 存储多维数组，`shape` 描述维度；`A * B` 是逐元素乘法，`A @ B` 是矩阵乘法，`A.T` 表示二维数组转置。

向量化把大量计算交给底层数值库，减少 Python 循环开销。广播则按规则对齐形状，避免手动复制数据；写运算前先检查形状，可避免许多“能运行但算错了”的问题。

## 五、两个补充视角

### 1. 四元数：旋转与非交换性

四元数 $q=a+bi+cj+dk$ 有四个实分量，满足 $i^2=j^2=k^2=ijk=-1$，例如 $ij=k$、$ji=-k$。单位四元数可表示三维旋转，用于图形学和姿态控制。

### 2. 放缩与夹逼：用容易处理的函数控制复杂函数

典型切线不等式是 $e^x\ge1+x$、$\ln x\le x-1$（$x>0$）。它们分别来自指数函数的凸性与对数函数的凹性，不能只凭“忽略高阶项”推出全局不等式。

夹逼准则则通过上下界趋于同一极限，确定中间函数的极限。这些思想会在后续泰勒近似和误差估计中再次出现。
