首页 > 解决方案 > 如何检查两个数字列表的百分比相似性?

问题描述

我想将一个列表的值与(相同索引的)另一个列表的值进行比较,并让函数输出一个百分比。

List_A= [ -0.56 0.98 0.68]
List_B= [-0.51 0.97 0.66]

Similarity_of_lists(List_A, List_B)= 97%(不是实际百分比,但在这种情况下应该很高)

现在,我认为这将是一些 for 循环,其中百分比差异被取为,例如 -0.56 和 -0.51,然后是 -0.98 和 -0.97,等等。然后平均百分比差异给出一个最终结果百分比差异。然后返回 1 平均百分比差异作为列表的百分比相似性。但是,我想知道是否有人能想到比这更有效的方法?

谢谢!

标签: pythonlist

解决方案


它可能取决于您希望避免的依赖项的数量,以及这些列表的大小是否会严重影响某些方法的计算时间。但是,以下将完成您正在寻找的内容:

import numpy as np

lista = [-.56, .98, .68]
listb = [-.51, .97, .66]

100 - np.mean([100*abs(lista[i] - listb[i])/listb[i] for i in range(len(lista))])
95.37828252200599

推荐阅读