Python数据分析学习笔记:计算向量夹角

Python数据分析学习笔记:计算向量夹角

通过计算两个向量夹角了解两个向量之间的相关性。

Python数据分析学习笔记:计算向量夹角_第1张图片

# 计算向量夹角

import numpy as np

def included_angle(a, b):
    a_norm = np.sqrt(np.sum(a * a))
    b_norm = np.sqrt(np.sum(b * b))
    cos_value = np.dot(a, b) / (a_norm * b_norm)
    arc_value = np.arccos(cos_value)
    angle_value = arc_value * 180 / np.pi
    return angle_value

x = np.array([12.5, 15.3, 23.2, 26.4, 33.5, 34.4, 39.4, 45.2, 55.4, 60.9])
y = np.array([21.2, 23.9, 32.9, 34.1, 42.5, 43.2, 49.0, 52.8, 59.4, 63.5])
print('x =', x)
print('y =', y)
print('x与y的夹角:{:.1f}°'.format(included_angle(x, y)))

x = np.array([1, 5, 4])
y = np.array([8, -4, 3])
print('x =', x)
print('y =', y)
print('x与y的夹角:{:.1f}°'.format(included_angle(x, y)))

x = np.array([4, 7, 9])
y = np.array([-12, -21, -20])
print('x =', x)
print('y =', y)
print('x与y的夹角:{:.1f}°'.format(included_angle(x, y)))

夹角是锐角——正相关,角度越小,正相关越强

夹角是钝角——负相关,角度越大,负相关越强

夹角是直角——不相关

夹角是零度——完全正相关

夹角是180度——完全负相关


Python数据分析学习笔记:计算向量夹角_第2张图片


可以结合上一篇相关系数来看:

Python数据分析学习笔记:计算向量夹角_第3张图片

你可能感兴趣的:(Python编程)