您好,登錄后才能下訂單哦!
如何用Python求均值、中值和眾數,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
我們來計算一個整數列表的均值、中值和眾數。下面的代碼段創建一個名為grades的列表,然后使用內置的sum和len函數來“手動”計算平均值——sum計算grade的總和(397),len計算grade的個數(5):
grades = [85, 93, 45, 89, 85] sum(grades) / len(grades)
與函數min和max(在《手把手教你用Python求最大值和最小值》一文中介紹)類似,sum和len都是函數式編程中約簡的示例,它們會將值合集減少為單個值——值的總和與值的數量。
Python標準庫的statistics模塊提供了計算均值、中值和眾數的函數,這些同樣也是約簡。要使用這些功能,首先需要導入statistics模塊,如下:
import statistics
然后,可以使用“statistics.”加上需要調用的函數名稱來訪問模塊的功能。下面的代碼使用statistics模塊的mean、median和mode函數分別計算列表grades的均值(79.4)、中值(85)和眾數(85):
statistics.mean(grades) statistics.median(grades) statistics.mode(grades)
其中,每個函數的參數都必須是可迭代的,在本例中為列表grades。要確認中值和眾數是否正確,可以使用內置的sorted函數來得到列表grades按值的遞增順序排列的副本:
sorted(grades)
結果:
[45, 85, 85, 89, 93]
列表grades具有奇數個值(5),因此median返回中間值(85)。如果列表包含偶數個值,則median會返回兩個中間值的平均值。從排好序的列表可以看到85是眾數,因為它出現的次數最多(兩次)。類似于下面的列表會導致mode函數產生一個StatisticsError:
[85, 93, 45, 89, 85, 93]
因為其中有兩個或更多個“出現最多”的值。這樣的一組值是雙峰的,85和93都出現了兩次。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。