赞
踩
其实它们非常简单,所谓的行向量就是我们的向量表示,一组数这组数码成一行,那么所谓的列向量呢?就是这组数码成一列而已,那么对于行向量还是列向量,在我们的学习中是并没有区别的,我们这篇呢,只讲向量,那么对于向量呢,就是一组有序的数字,我们怎么码它并不重要。但是当我们到矩阵的时候,怎么码这个向量的这一组数据就变得有关系了。
行向量是按行把向量排开(横着来写), 列向量是按列把向量排开(竖着来写)
在数学中我们更多的把数据写成列向量,在编程语言中更多的把数据存成行向量!
如果想在编程语言中把行向量转化成列向量的形式可以用reshape方法重新定义数组形状, 不过变化形状后的数组,它的维度也会改变;T属性不是没用, 它虽然形式上没变,但a.T是一个列向量, 它会在后面进行矩阵操作的时候, 能够明显的看到转置后的区别。
reshape
方法中的-1
表示自动计算该维度的大小。当你在调用reshape
方法时,如果将某一个维度设置为-1
,NumPy 会根据数组的总元素个数和其他维度的大小自动计算该维度的大小,以保持数组的原始元素总数不变。
光上面定义向量是没有用的,肯定还要定义向量的一些运算,它有加减乘除一些运算,下面我们一 一列举:
等于它们的分量分别相加,显然两个向量的长度得是相等的,减法我们在这里不列举,很容易举一反三
向量相加的和是以AB为边所对应的平行四边形的对角线, 相应的这个向量就是a+b。
- 向量的加法实际上大家可以理解成我们从原点出发,先走到(5, 2)这个位置。之后再从(5, 2)这个位置出发走(2, 5),相当于是(2, 5)这个向量所对应的这么多的位移。最终,我们到达的这个位置就是向量加法的结果。那么,这个最终的结果,大家可以看到。相当于是从零零这个位置到达了这个位置,我们在这里呢,绘制出了这样的一个三角形的形状。
- 如果我们在这个三角形的另外一侧相应的也补上和这两个向量平行的这两条边的话, 那么大家就可以看到向量加法的最终结果, 其实就是以这两个向量为边所对应的这个平行四边形的对角线,那么这就是为什么两个向量相加之后,最终的结果是这样的一个平行四边形的对角线的原因。
- 那么,具体的从数值的角度讲,这两向量相加结果是什么呢?答案是(7, 7),也就是两个向量相加的结果是将这两个向量中每一个分量分别相加,最终组合成的一个向量。大家也可以验证一下
那么,这样的一个数值计算的结果和我们在这里直观的看到的这个向量加法的几何意义?他们之间的关系是什么呢?其实也非常好理解。大家可以想象一下。在这里,对于我们(5, 2)这个向量,在我们的坐标轴中,它就可以理解成是先向这个x的正方向移动五个单位,再向y的正方向移动两个单位。之后我们又加上了一个(2, 5),那么(2, 5)这个向量呢?其实就是向量在(5, 2)这个点的基础上,再向x的正方向移动两个单位,之后再向y的正方向移动五个单位。那么总共我们在x方向就移动了7个单位,而在y这个方向上呢,也是七个单位,这样一来我们就得到了(5, 2)和(2, 5)这两个向量相加,它们的数值结果是(7, 7), 对应的几何儿就直观的表示在坐标轴中,是这两个向量围边所对应的平行四边形的对角线,那么这就是向量的加法。
(
5
2
)
+
(
2
5
)
=
(
7
7
)
(52) + (25) = (77)
(52)+(25)=(77)
三维空间也同理
(
1
2
3
)
+
(
4
5
6
)
=
(
5
7
9
)
(123) + (456) = (579)
123
+
456
=
579
n维向量也同理
(
v
1
v
2
⋯
v
n
)
+
(
u
1
u
2
⋯
u
n
)
=
(
v
1
+
u
1
v
2
+
u
2
⋯
v
n
+
u
n
)
(v1v2⋯vn) + (u1u2⋯un) = (v1+u1v2+u2⋯vn+un)
v1v2⋯vn
+
u1u2⋯un
=
v1+u1v2+u2⋯vn+un
它是一个数和这个向量的每个分量相乘, 其实就相当于多次的加法操作而已, 在坐标系中表示就是一个向量走了多次
2
×
(
1
2
3
)
=
(
2
4
6
)
=
(
1
2
3
)
+
(
1
2
3
)
2\times (123) = (246) = (123) + (123)
2×
123
=
246
=
123
+
123
k
×
(
a
,
b
)
T
=
?
k\times(a, b)^T = ?
k×(a,b)T=?
n维向量同理:
k
.
(
v
1
v
2
⋯
v
n
)
=
(
k
.
v
1
k
.
v
2
⋯
k
.
v
n
)
k.(v1v2⋯vn) = (k.v1k.v2⋯k.vn)
k.
v1v2⋯vn
=
k.v1k.v2⋯k.vn
其实就相当于:总共向x移动Ka个单位, 总共向y移动kb个单位, 最终结果
(
k
a
,
k
b
)
(ka, kb)
(ka,kb)
在这里大家一定要注意好, 对于向量加法和数乘这两种运算, 它们的运算对象是不一样的。对于向量的加法, 它是定义在两个向量上的一个运算, 而对于向量的数乘, 它是定义在一个标量和一个向量上的运算
其实它所做的事情就是把这个行向量颠倒90度变成一个列向量,这样呢,我们就可以在一个行的空间中表达一个列向量, 因为我们把这些数字码成一列太占空间,太占版面了。只是这个原因而已,那么对于这些约定俗成的符号儿,大家在这里先有一个了解, 后面会详细介绍.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。