Skip to main content
 首页 » 编程设计

python之查找每列中出现次数最多的元素的最简单方法

2025年05月04日10lexus

假设我有

data = 
[[a, a, c], 
 [b, c, c], 
 [c, b, b], 
 [b, a, c]] 

我想得到一个包含每列中出现次数最多的元素的列表:result = [b, a, c],最简单的方法是什么?

我使用 Python 2.6.6

请您参考如下方法:

在统计学中,您想要的是模式。 scipy 库 ( http://www.scipy.org/ ) 在 scipy.stats 中有一个 mode 函数。

In [32]: import numpy as np 
 
In [33]: from scipy.stats import mode 
 
In [34]: data = np.random.randint(1,6, size=(6,8)) 
 
In [35]: data 
Out[35]:  
array([[2, 1, 5, 5, 3, 3, 1, 4], 
       [5, 3, 2, 2, 5, 2, 5, 3], 
       [2, 2, 5, 3, 3, 2, 1, 1], 
       [2, 4, 1, 5, 4, 4, 4, 5], 
       [4, 4, 5, 5, 2, 4, 4, 4], 
       [2, 4, 1, 1, 3, 3, 1, 3]]) 
 
In [36]: val, count = mode(data, axis=0) 
 
In [37]: val 
Out[37]: array([[ 2.,  4.,  5.,  5.,  3.,  2.,  1.,  3.]]) 
 
In [38]: count 
Out[38]: array([[ 4.,  3.,  3.,  3.,  3.,  2.,  3.,  2.]])