python_(1)_向量运算

向量

行向量

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)=(0279)

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]]
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值