numpy库
numpy.bincount() 解释:
一句话版:返回从0到数组中最大值,每个值在数组中出现的次数
形象版:对于数组[11, 4, 4, 11, 3, 9, 8],看做是编号分别为11, 4, 4, 11, 3, 9, 8的7个小球。为了将小球归置整齐,需要放到对应编号的桶中,小球的最大编号为11,所以需要11+1=12个桶,同样编号从0-11。最后按照桶编号依次输出桶中包含的小球个数(整个过程其实就是计数排序)。很显然编号必须是非负整数。
详细版参考这里
注:假如众数不止一个,只能返回值最小的一个
a = [11, 4, 4, 11, 3, 9, 8]
import numpy as np
counts = np.bincount(a)
np.argmax(counts) ==> 4
scipy库
scipy.stats.mode():
官方函数说明:返回众数和众数出现次数,如果众数不止一个,返回值最小的。
from scipy.stats import mode
mode(a) ==> ModeResult(mode=array([4]), count=array([2]))
collections库
collections.Counter():计数方法,以字典的形式返回元素统计结果
注:假如众数不止一个,同样只能返回一个,但是返回的是最早出现的元素
from collections import Counter
Counter(a).most_common(1) ==> [(11, 2)]
pandas库
注:可以返回所有的众数
pd.Series(a).mode() ==> 0 4
1 11
dtype: int64