比较多个列表并按列返回最常出现的数字(最常见的索引值)

时间:2018-04-12 20:23:49

标签: python list

我有三个清单:

list1 = [1, 5, 5, 4, 2]
list2 = [1, 4, 5, 3, 4]
list3 = [2, 5, 4, 3, 4]

我想在每列中返回最常出现的数字,例如:

  • 第1列将返回1,因为{1,1,2}和1最多出现
  • 第2列将返回5,因为{5,4,5}和5最多出现
  • 第3列将返回5.

对于这些列表,我想获得[1, 5, 5, 3, 4]

列表的长度始终相等。

1 个答案:

答案 0 :(得分:2)

这是使用scipy.stats.mode:

的解决方案
from scipy.stats import mode
m = mode([list1, list2, list3])
print(m)
#ModeResult(mode=array([[1, 5, 5, 3, 4]]), count=array([[2, 2, 2, 2, 2]]))

如果您只想将最常用的值作为列表:

print(list(m.mode[0]))
#[1, 5, 5, 3, 4]