numpy的dot函数计算两个向量
α
\boldsymbol{\alpha}
α和
β
\boldsymbol{\beta}
β的内积:
dot(a,b)
\text{dot(a,b)}
dot(a,b)
两个参数a和b表示参与计算的两个表示为数组的向量
α
\boldsymbol{\alpha}
α和
β
\boldsymbol{\beta}
β,函数返回值
α
∘
β
\boldsymbol{\alpha}\circ\boldsymbol{\beta}
α∘β。numpy.linalg的函数
norm(a)
\text{norm(a)}
norm(a)
计算表示成数组参数a的向量
α
\boldsymbol{\alpha}
α的模
∣
α
∣
|\boldsymbol{\alpha}|
∣α∣。利用dot和norm函数,可以计算两个同维向量的夹角
θ
=
arccos
α
β
∣
α
∣
∣
β
∣
\theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}}
θ=arccos∣α∣∣β∣αβ。
例1 用Python计算ℝ
4
^4
4中向量
α
=
(
2
1
3
2
)
,
β
=
(
1
2
−
2
1
)
\boldsymbol{\alpha}=\begin{pmatrix}2\\1\\3\\2\end{pmatrix},\boldsymbol{\beta}=\begin{pmatrix}1\\2\\-2\\1\end{pmatrix}
α=
2132
,β=
12−21
之间的夹角
θ
\theta
θ。
import numpy as np #导入numpy
a=np.array([2,1,3,2]) #向量a
b=np.array([1,2,-2,1]) #向量b
cost=np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b)) #cos(t)
print('%.4f'%np.arccos(cost))
程序的第2、3行设置向量数据a和b。第4行计算 cos θ = α β ∣ α ∣ ∣ β ∣ \cos{\theta}=\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|} cosθ=∣α∣∣β∣αβ。第5行调用numpy的arccos函数计算 θ = arccos α β ∣ α ∣ ∣ β ∣ \theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}} θ=arccos∣α∣∣β∣αβ。运行程序,输出
1.5708
为
π
2
\frac{\pi}{2}
2π的精确到万分位的近似值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。