python计算余弦复杂度

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

a = np.array([1, 2, 3, 4])
b = np.array([1, 2, 6, 8])
dot = np.dot(a, b)
norma = np.linalg.norm(a)
normb = np.linalg.norm(b)
cos = dot / (norma * normb)

skl_cos = cosine_similarity(a.reshape(1, 4), b.reshape(1, 4))
print(dot, norma, normb, cos, skl_cos[0][0])

 

需要注意的是,使用numpy计算余弦复杂度,可以直接使用一维向量进行计算,使用sklearn计算时,提供的是二维数组

原文地址:https://www.cnblogs.com/yytxdy/p/11836740.html