向量 (vector)是一个有序数字列表,表示大小和方向,或者简单地表示空间中的一个点。为了处理这些基础的数学对象,我们需要一种统一的方法来书写它们。如同我们在代数中使用 x x x 或 y y y 等符号表示未知数,线性代数也使用特定的表示法来表示向量。这种表示法有助于将向量与单个数字(标量)区分开,并使数学表达式清晰准确。
向量 (vector)的符号表示
向量通常有两种主要的表示方法:
**小写粗体字母:**这在印刷文本和教科书中非常常见。例如,v \mathbf{v} v 或 x \mathbf{x} x 代表向量。
**带箭头的小写字母:**这经常用于白板书写或笔记中。例如,v ⃗ \vec{v} v 或 x ⃗ \vec{x} x 。
这两种表示法都表明我们正在讨论的是一个向量,而不仅仅是 a a a 或 b b b 这样的简单标量值。在本课程中,我们将主要使用小写粗体字母 约定,如 v \mathbf{v} v 。
向量 (vector)的分量和索引
向量由其分量定义,分量是有序列表中的各个数字。我们通常用方括号或圆括号将这些分量括起来。
例如,一个具有 n n n 个分量的向量 v \mathbf{v} v 可以写成:
v = [ v 1 , v 2 , … , v n ] \mathbf{v} = [v_1, v_2, \dots, v_n] v = [ v 1 , v 2 , … , v n ]
或者有时使用圆括号:
v = ( v 1 , v 2 , … , v n ) \mathbf{v} = (v_1, v_2, \dots, v_n) v = ( v 1 , v 2 , … , v n )
这里,v 1 v_1 v 1 是第一个分量,v 2 v_2 v 2 是第二个分量,v n v_n v n 是第 n n n 个分量。下标数字(1、2、...、n)表示分量在向量中的位置。
**索引的重要说明:**在数学中,向量分量通常是1-索引的,这意味着第一个元素是 v 1 v_1 v 1 ,第二个是 v 2 v_2 v 2 ,以此类推。但在编程中,特别是在 Python 和 NumPy 等库中,索引通常是0-索引的。这表示第一个元素位于索引0,第二个位于索引1,等等。当我们在代码中实现向量时,我们将使用基于0的索引。了解这两种约定很有用。
列向量 (vector)与行向量
分量的视觉排列方式很重要,尤其是在我们之后开始使用矩阵时。有两种主要形式:
**列向量:**分量垂直排列成一列。这在许多线性代数环境中通常是默认表示。
v = [ v 1 v 2 ⋮ v n ] \mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix} v = v 1 v 2 ⋮ v n
**行向量:**分量水平排列成一行。
v = [ v 1 v 2 … v n ] \mathbf{v} = \begin{bmatrix} v_1 & v_2 & \dots & v_n \end{bmatrix} v = [ v 1 v 2 … v n ]
或者简单地写成行内形式:v = [ v 1 , v 2 , … , v n ] \mathbf{v} = [v_1, v_2, \dots, v_n] v = [ v 1 , v 2 , … , v n ] 。
它们虽然包含相同信息,但列向量和行向量之间的区别对于矩阵乘法等运算而言变得很重要。除非另有说明,当我们提及“向量”时,通常隐含地指列向量 。然而,行向量也经常使用,尤其是在表格或数据集中表示数据点时,其中每行可能是一个数据样本(向量)。
示例
一个二维列向量 (vector) a \mathbf{a} a :
a = [ 3 − 1 ] \mathbf{a} = \begin{bmatrix} 3 \\ -1 \end{bmatrix} a = [ 3 − 1 ]
这里,a 1 = 3 a_1 = 3 a 1 = 3 和 a 2 = − 1 a_2 = -1 a 2 = − 1 。
一个三维行向量 b \mathbf{b} b :
b = [ 5 0 2.5 ] \mathbf{b} = \begin{bmatrix} 5 & 0 & 2.5 \end{bmatrix} b = [ 5 0 2.5 ]
这里,b 1 = 5 b_1 = 5 b 1 = 5 ,b 2 = 0 b_2 = 0 b 2 = 0 ,和 b 3 = 2.5 b_3 = 2.5 b 3 = 2.5 。
一个通用 n n n 维列向量 x \mathbf{x} x :
x = [ x 1 x 2 ⋮ x n ] \mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} x = x 1 x 2 ⋮ x n
向量 (vector)空间
你可能还会遇到像 v ∈ R n \mathbf{v} \in \mathbb{R}^n v ∈ R n 这样的表示法。这是数学上的简写,表明 v \mathbf{v} v 是一个向量,属于所有可能的 n n n 维向量集合,其中每个分量都是实数。R \mathbb{R} R 代表实数集,上标 n n n 表示维度(分量数量)。
R 2 \mathbb{R}^2 R 2 是所有二维向量的空间(例如标准 x-y 平面上的点)。
R 3 \mathbb{R}^3 R 3 是所有三维向量的空间。
R n \mathbb{R}^n R n 是所有具有 n n n 个实值分量向量的空间。
理解这种表示法有助于阅读与机器学习 (machine learning)算法相关的数学定义。
记住这种标准表示法,我们就能清晰地沟通和处理向量。接下来,我们将看到如何使用 Python 的 NumPy 库来表示这些数学对象。