python - 在python中用lambda替换嵌套的'for循环'
问题描述
我正在做一项任务,我需要检查两个数据框列之间的余弦相似度。我正在使用两个 for 循环分别遍历 data1 和 data2 的两列。
for i in range(0,len(input_df)):
for j in range(0,len(data1)):
##check similarity ratio
similarity_score= cosine_sim(input_df['Summary'].iloc[i],data1['Summary'].iloc[j])
print(similarity_score)
###cosine_sim() is my function that gave similarity score.
我如何使用Lambda
而不是for loop
嵌套循环来做到这一点需要很多时间。在检查余弦相似度后,我还在做其他操作。
解决方案
要计算两个向量(您的两列)之间的余弦相似度,您可以使用 NumPy:
import numpy as np
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
cosine_similarity(input_df['Summary'], data1['Summary'])
但是,根据您的代码示例,您似乎想要计算列的每个元素之间的余弦相似度。所以我不完全确定以上是否是您正在寻找的。
推荐阅读
- flutter - Dart Analyzer 已停止工作,但我的代码中没有看到任何错误
- stored-procedures - 从 java oracle rdb 7.4 版本调用存储过程时出现问题
- python - 如何在 PySimpleGui 中设置列
- huawei-mobile-services - 测试时App Bundle格式的App意外退出导致App被拒绝的解决方法
- python - 在 pyspark 中绘制一个简单的 df
- python - 在图像上应用灰度蒙版
- angular - 如何使用角度数据表获取“页面”、“页面”、“开始”、“结束”、“长度”详细信息
- javascript - 显示星级以进行评分
- javascript - 带有flowjs的React useState中的“ReferenceError:未定义字符串”
- html - HTML嵌套表不会重新调整到单元格高度