總結篇 求眾數

2021-10-01 16:43:42 字數 1172 閱讀 9799

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.stats.mode():

官方函式說明:返回眾數和眾數出現次數,如果眾數不止乙個,返回值最小的。

from scipy.stats import mode

mode(a)

==> moderesult(mode=array([4

]), count=array([2

]))

collections.counter():計數方法,以字典的形式返回元素統計結果

:假如眾數不止乙個,同樣只能返回乙個,但是返回的是最早出現的元素

from collections import counter

counter(a)

.most_common(1)

==>[(

11,2)

]

:可以返回所有的眾數

pd.series(a)

.mode()==

>04

111dtype: int64

leetcode階段總結 求眾數

169.多數元素 229.求眾數 ii 摩爾投票法基於這樣乙個事實,當乙個數的重複次數超過陣列長度的一半,每次將兩個不相同的數刪除,最終剩下的就是要找的數。為了解釋清楚這個問題,首先來看leetcode的第169題。給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n ...

169 求眾數 229 求眾數 II

不限定時間複雜度的話,很多人會先排序,再遍歷的方法來做。不限定空間複雜度的話,很多人會用hash表來做。那麼,有了這兩個限定,就只能用摩爾投票演算法了。主元素問題典型解法。摩爾投票演算法 時間複雜度o n 空間複雜度o 1 class solution else if nums i ans cnt ...

python求眾數程式 python求眾數問題例項

問題描述 多重集中重數最大的元素稱為眾數.就是乙個可以有重複元素的集合,在這個集合中重複的次數最多的那個數就叫它的眾數.如s 1,2,2,2,3,5 重數是2,其重數為3 例項 如下 list num list num count 0 dict num 從檔案讀入,檔案第一行為集合中元素的個數,以後...