在这里插入图片描述
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 ,β= 1221 之间的夹角 θ \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π的精确到万分位的近似值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐