向量
行向量
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
print(a)
<class 'numpy.ndarray'>
[1 2 3 4]
列向量
列向量 相当于一个 n × 1 n\times1 n×1 的矩阵
import numpy as np
a = np.array([[1,2,3,4]])
print(type(a))
print(a)
print(a.shape)
print(type(a.T))
print(a.T)
print(a.T.shape)
<class 'numpy.ndarray'>
[[1 2 3 4]]
(1, 4)
<class 'numpy.ndarray'>
[[1]
[2]
[3]
[4]]
(4, 1)
向量的加法
[ 1 2 3 ] + [ 5 6 7 ] = [ 6 8 10 ] \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} + \begin{bmatrix} 5 \\ 6 \\ 7 \end{bmatrix} = \begin{bmatrix} 6 \\ 8 \\ 10 \end{bmatrix} ⎣⎡123⎦⎤+⎣⎡567⎦⎤=⎣⎡6810⎦⎤
import numpy as np
u = np.array([[1,2,3]]).T
v = np.array([[5,6,7]]).T
print(u+v)
[[ 6]
[ 8]
[10]]
向量的数量乘法
3 × [ 1 2 3 ] = [ 3 6 9 ] 3 \times \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} = \begin{bmatrix} 3 \\ 6 \\ 9 \end{bmatrix} 3×⎣⎡123⎦⎤=⎣⎡369⎦⎤
import numpy as np
u = np.array([[1,2,3]]).T
print(3*u)
[[3]
[6]
[9]]
向量间的乘法
向量的内积(点乘) np.dot()
参与内积运算的两个向量必须维数相等
运算规则:先将对应位置上的元素相乘,然后合并相加
向量内积的最终运算结果是一个标量
( 3 5 2 ) ⋅ ( 1 4 7 ) = 3 × 1 + 5 × 4 + 2 × 7 = 37 \begin{pmatrix} 3 & 5 & 2 \end{pmatrix} \cdot \begin{pmatrix} 1 & 4 & 7 \end{pmatrix} = 3\times1 + 5\times4 + 2\times7 = 37 (352)⋅(147)=3×1+5×4+2×7=37
import numpy as np
u = np.array([3,5,2])
v = np.array([1,4,7])
print(np.dot(u,v))
37
向量的外积(叉乘) np.cross()
二维向量的外积
表示两个向量张成的平行四边形的"面积",如果两个向量的夹角大于 18 0 ∘ 180^\circ 180∘, 则向量外积的运算结果为负
( 3 5 ) × ( 1 4 ) = 7 \begin{pmatrix} 3 & 5 \end{pmatrix} \times \begin{pmatrix} 1 & 4 \end{pmatrix} = 7 (35)×(14)=7
import numpy as np
u = np.array([3,5])
v = np.array([1,4])
print(np.cross(u,v))
print(type(np.cross(u,v)))
print(np.cross(u,v).shape)
7
<class 'numpy.ndarray'>
()
三维向量的外积
表示两个向量张成的平面的法向量,所得结果是向量
( 3 3 9 ) × ( 1 4 12 ) = ( 0 − 27 9 ) \begin{pmatrix} 3 & 3 & 9 \end{pmatrix} \times \begin{pmatrix} 1 & 4 & 12 \end{pmatrix} = \begin{pmatrix} 0 & -27 & 9 \end{pmatrix} (339)×(1412)=(0−279)
import numpy as np
u = np.array([3,3,9])
v = np.array([1,4,12])
print(np.cross(u,v))
print(type(np.cross(u,v)))
print(np.cross(u,v).shape)
[ 0 -27 9]
<class 'numpy.ndarray'>
(3,)
向量的线性组合:先数乘后叠加
3 × [ 1 2 3 ] + 4 × [ 4 5 6 ] + 5 × [ 7 8 9 ] = [ 54 66 78 ] 3 \times \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} + 4\times \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix} + 5\times \begin{bmatrix} 7 \\ 8 \\ 9 \end{bmatrix} = \begin{bmatrix} 54 \\ 66 \\ 78 \end{bmatrix} 3×⎣⎡123⎦⎤+4×⎣⎡456⎦⎤+5×⎣⎡789⎦⎤=⎣⎡546678⎦⎤
import numpy as np
u = np.array([[1,2,3]]).T
v = np.array([[4,5,6]]).T
w = np.array([[7,8,9]]).T
print(3*u+4*v+5*w)
[[54]
[66]
[78]]