手把手教你用Python求均值、中值和众数
導讀:數據科學入門:集中趨勢度量——均值、中值和眾數。
作者:保羅·戴特爾(Paul Deitel)、哈維·戴特爾(Harvey Deitel)
來源:大數據DT(ID:hzdashuju)
本文我們將討論如何使用描述性統計數據進行數據分析,包括:
均值——一組值的平均值;
中值——當所有值按順序排列時的中間值;
眾數——最常出現的值。
以上這些都是集中趨勢度量,每種都會產生一個值來表示一組值中的“中心”值,或者說,在某種意義上是這組值中的典型值。
我們來計算一個整數列表的均值、中值和眾數。下面的代碼段創建一個名為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)結果:
列表grades具有奇數個值(5),因此median返回中間值(85)。如果列表包含偶數個值,則median會返回兩個中間值的平均值。從排好序的列表可以看到85是眾數,因為它出現的次數最多(兩次)。類似于下面的列表會導致mode函數產生一個StatisticsError:
[85,?93,?45,?89,?85,?93]因為其中有兩個或更多個“出現最多”的值。這樣的一組值是雙峰的,85和93都出現了兩次。
關于作者:保羅·戴特爾,Deitel&Associates公司首席執行官兼首席技術官,畢業于麻省理工學院,擁有38年的計算經驗。保羅是世界上最有經驗的編程語言培訓師之一,自1992年以來一直針對軟件開發人員教授專業課程。他服務過的國際客戶包括思科、IBM、西門子、Oracle、戴爾、富達、美國國家航空航天局肯尼迪航天中心等。
本文摘編自《Python程序設計:人工智能案例實踐》,經出版方授權發布。
延伸閱讀《Python程序設計:人工智能案例實踐》
點擊上圖了解及購買
轉載請聯系微信:DoctorData
推薦語:極簡入門Python和AI,讀這一本就夠了!538個實例幫你掌握交互式IPython解釋器和JupyterNotebook并應用Python實踐人工智能項目。
劃重點????
干貨直達????
數據中臺與傳統大數據平臺有什么區別?終于有人講明白了
終于有人把聯邦學習講明白了
手把手教你用Python求最大值和最小值
谷歌、微軟、亞馬遜6個驚人的A/B測試實例
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?|?講明白?|?神操作
大數據?|?云計算?|?數據庫?|?Python?|?爬蟲?|?可視化
AI?|?人工智能?|?機器學習?|?深度學習?|?NLP
5G?|?中臺?|?用戶畫像?|?1024?|?數學?|?算法?|?數字孿生
據統計,99%的大咖都關注了這個公眾號
????
總結
以上是生活随笔為你收集整理的手把手教你用Python求均值、中值和众数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 啥是佩奇?爷爷,我用Python给你画一
- 下一篇: 被新基建点名的大数据,有哪些书最值得读?