【總結篇】求衆數

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
發佈了59 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章