求向量 A A A和向量 B B B的余弦
c o s ( θ ) = A ⋅ B ∥ A ∥ ∥ B ∥ cos(\theta) = \dfrac{A\cdot B}{\left \|A\right \| \left \|B\right \|} cos(θ)=∥A∥∥B∥A⋅B
def cos_dist(a, b):
import math
if len(a) != len(b):
return None
part_up = 0.0
a_sq = 0.0
b_sq = 0.0
for a1, b1 in zip(a,b):
part_up += a1*b1
a_sq += a1**2
b_sq += b1**2
part_down = math.sqrt(a_sq*b_sq)
if part_down == 0.0:
return None
else:
return part_up / part_down