gpt4 book ai didi

python - Python 中 Dataframe 中每一行之间的余弦相似度

转载 作者:太空狗 更新时间:2023-10-29 21:21:46 26 4
gpt4 key购买 nike

我有一个包含多个向量的 DataFrame,每个向量有 3 个条目。在我的表示中,每一行都是一个向量。我需要计算每个向量之间的余弦相似度。将其转换为矩阵表示更好,还是 DataFrame 本身有更简洁的方法?

这是我试过的代码。

import pandas as pd
from scipy import spatial
df = pd.DataFrame([X,Y,Z]).T
similarities = df.values.tolist()

for x in similarities:
for y in similarities:
result = 1 - spatial.distance.cosine(x, y)

最佳答案

你可以直接使用sklearn.metrics.pairwise.cosine_similarity .

演示

import numpy as np; import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

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

cosine_similarity(df)
## array([[ 1. , 0.33333333, 0.40824829],
## [ 0.33333333, 1. , 0.40824829],
## [ 0.40824829, 0.40824829, 1. ]])

关于python - Python 中 Dataframe 中每一行之间的余弦相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45387476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com