我有一个包含多个向量的数据帧,每个向量有3个条目。在我的表示中,每一行都是一个向量。我需要计算每个向量之间的余弦相似性。将其转换为矩阵表示更好,或者在数据帧本身中是否有更干净的方法
这是我尝试过的代码
将熊猫作为pd导入
从scipy导入空间
df=pd.DataFrame([X,Y,Z]).T
相似性=df.values.tolist()
对于相似性中的x:
对于相似性方面的y:
结果=1-空间距离余弦(x,y)
您可以直接使用sklearn.metrics.pairwise.cosine\u similarity
演示
将numpy作为np导入;作为pd进口熊猫
从sklearn.metrics.pairwise导入余弦_相似性
df=pd.DataFrame(np.random.randint(0,2,3,5)))
df
## 0 1 2 3 4
## 0 1 1 1 0 0
## 1 0 0 1 1 1
## 2 0 1 0 1 0
余弦相似性(df)
##数组([[1,0.33333333,0.40824829],
## [ 0.33333333, 1. , 0.40824829],
## [ 0.40824829, 0.40824829, 1. ]])