![矩阵力量:线性代数全彩图解+微课+Python编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/642/52842642/b_52842642.jpg)
2.2 行向量、列向量
上一章提到,向量要么一行多列,要么一列多行,因此向量可以看作是特殊的矩阵——一维矩阵(one-dimensional matrix)。一行多列的向量叫行向量(row vector),一列多行的向量叫列向量(column vector)。
一个矩阵可以视作是由若干行向量或列向量整齐排列而成的。如图2.6所示,数据矩阵X的每一行是一个行向量,代表一个样本点;X的每一列为一个列向量,代表某个特征上的所有样本数据。
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P44_1240337.jpg?sign=1739119608-YYbkoYPEWuh8bJU4ayxaLZfIkoeYMhIL-0-472c402c5266e30c73acf661bb8576f0)
图2.6 观察数据矩阵的两个视角
行向量:一行多列,一个样本数据点
行向量将n个元素排成一行,形状为1×n(代表1行、n列)。下式行向量a为1行4列,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P44_1240339.jpg?sign=1739119608-GQLCOLUqFv7sFvkEH75lABRW9z97cjw6-0-3750d8c1dfe5a97a3e77d4dfc664401a)
如图2.7所示,行向量转置(transpose)便可以得到列向量,反之亦然。转置运算符号为正体上标T。
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P44_1240340.jpg?sign=1739119608-GzS1yzou2AOiGbNVsb4CwhaRPXkT316e-0-46ef2fea3c09199e7572685a34073a83)
图2.7 行向量的转置是列向量
表2.1所示为利用Numpy构造行向量的几种常见方法。可以用len(a)计算向量元素个数。
表2.1 用Numpy构造行向量
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-T44_1240344.jpg?sign=1739119608-dycrP1arIl4rvsSlNccrcCINOAX11Lv7-0-75e417625845c0db7e6115e917755322)
前文提过, X的行向量序号采用“上标加括号”方式,如x(1)代表X的第一行行向量。
如图2.8所示,矩阵X可以写成一组行向量上下叠放,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P45_1241674.jpg?sign=1739119608-YWdoOKzvpNNx49fcmXS1N0L8wYvU8U5h-0-b463f0c54ab8b7bd85ec38468dcf699f)
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P45_1241675.jpg?sign=1739119608-c9dme3QU7oSMfB8TM1caMTfC7nByStnd-0-6517d80e8ab925a8ce884d810c45f439)
图2.8 矩阵由一系列行向量构造
再次强调:数据分析偏爱用行向量表达样本点。
列向量:一列多行,一个特征样本数据
列向量将n个元素排成一列,形状为n×1(即n行、1列)。举个例子,下式中列向量b为4行1列,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P45_1241676.jpg?sign=1739119608-66vYMDeOAWgMnLuy7rJxwqYgNH8Fpl9r-0-85280d567a3775228dbc43b0de72b08b)
构造X的列向量序号则采用下标表示,如x1。如图2.9所示,矩阵X可以看做是4个等行数列向量整齐排列得到的,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P45_1241678.jpg?sign=1739119608-qS8vRb1UYC4JhVVEwJpO4QaZcF7DexNG-0-98fa7c9b69469f3e815ed7343b971fc2)
注意:不加说明时,本书中向量一般指的是列向量。
注意:此处特征向量不同于特征值分解(eigen decomposition)中的特征向量(eigenvector)。
数据分析时通常偏爱用列向量表达特征,如xj代表第j个特征上的样本数据构成的列向量。因此,列向量又常称做特征向量(feature vector)。xj对应概率统计的随机变量Xj,或者代数中的变量xj。
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P46_1242568.jpg?sign=1739119608-p9jBvGBid7WXQPWi6BflCPWcCeIrINbb-0-793e75fd4322a13e1ba3bd619f9e3f14)
图2.9 矩阵由一排列向量构造
表2.2总结了Numpy构造列向量的几种常见方法。
表2.2 用Numpy构造列向量
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-T46_1242571.jpg?sign=1739119608-o7aEX2ZKrsqIjyxGFV0gKxSsH4ltANhA-0-fd8506876e012a29dedf53d63e08bda0)
特殊列向量
全零列向量(zero column vector)0,是指每个元素均为0的列向量,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P46_1242573.jpg?sign=1739119608-1hEjhjoFL2g0AeZr8uk3Q7PvOevz38dn-0-d8c92b0a2a6154644af81fe057f8a863)
代码numpy.zeros((4,1))可以生成4×1全零列向量。多维空间中,原点也常记做零向量0。
全1列向量(all-ones column vector)1,是指每个元素均为1的列向量,即
![](https://epubservercos.yuewen.com/C88560/31398492103476706/epubprivate/OEBPS/Images/Figure-P46_1242575.jpg?sign=1739119608-MNhO1ewlTqBnAGZgO7T0cEOAEUWwUVi0-0-cb2bfbca4aa307048585ece1d52d9ec4)
代码numpy.ones((4,1))可以生成4×1全1列向量。
全1列向量1在矩阵乘法中有特殊的地位,本书第5章、第22章将分别从矩阵乘法和统计两个角度进行讲解。