【发布时间】:2020-04-17 22:54:50
【问题描述】:
我正在 Pandas 上使用这个数据集,目前我被困在这一步:
我有一个如下所示的数据框:
id1 id2 id3 id4
id1 1 0.3 0.5 0.2
id2 0.2 1 0.4 0.7
id3 0 0.5 1 0.8
id4 0.6 0.1 0 1
现在,id<num> 指的是与每条消息关联的post_id。上面的余弦相似度矩阵是一个二维数组,我做了一些工作来找到这些不同消息之间的余弦相似度分数。
最终目标是在 UI 上显示并聚合看起来彼此相似的帖子。为此,我需要id1 和id2,id1 和id3 等中的分数概览。
但是,我现在有一个 1 的对角线(这是有道理的,因为它们是相同的),但是我怎样才能以更好的方式做到这一点,这样我就不必使用双循环,并最终带来它到我可以在数据框中显示如下的状态。
我目前正在做的事情给了我这个:
id1, id1, score
id1, id2, score
id1, id3, score
id1, id4, score
id2, id1, score
id2, id2, score
id2, id3, score
id2, id4, score
id3, id4, score
id3, id1, score
id3, id2, score
id3, id3, score
id4, id1, score
id4, id2, score
id4, id3, score
id4, id4, score
我想得到的是这样的:
id1, id2, score
id1, id3, score
id1, id4, score
id2, id3, score
id2, id4, score
id3, id4, score
我怎样才能做到这一点?我应该将二维矩阵重塑为数组吗?我觉得我在这里遗漏了一些东西。
感谢您在此问题上的帮助。
【问题讨论】:
-
你能分享一下预期的输出吗?
-
@AlexandreB。我已经用预期输出的代码块编辑了原始问题