詳解python statistics模塊及函數(shù)用法
本節(jié)介紹 Python 中的另一個(gè)常用模塊 —— statistics模塊,該模塊提供了用于計(jì)算數(shù)字?jǐn)?shù)據(jù)的數(shù)理統(tǒng)計(jì)量的函數(shù)。它包含了很多函數(shù),具體如下表:
| 名稱 | 描述 |
|---|---|
| mean() | 數(shù)據(jù)的算術(shù)平均數(shù)(“平均數(shù)”) |
| harmonic_mean() | 數(shù)據(jù)的調(diào)和均值 |
| median() | 數(shù)據(jù)的中位數(shù)(中間值) |
| median_low() | 數(shù)據(jù)的低中位數(shù) |
| median_high() | 數(shù)據(jù)的高中位數(shù) |
| median_grouped() | 分組數(shù)據(jù)的中位數(shù),即第50個(gè)百分點(diǎn) |
| mode() | 離散的或標(biāo)稱的數(shù)據(jù)的單模 |
mean(data)函數(shù)
mean(data) 函數(shù)用于計(jì)算一組數(shù)字的平均值,參數(shù) data 可以是多種形式的,比如 int 型數(shù)組或 decimal 型數(shù)組等。舉例說明函數(shù)的具體用法:
>>> statistics.mean([1, 2, 3, 4, 5])
3
>>> from fractions import Fraction as F
>>> statistics.mean([F(4, 7), F(4, 21), F(5, 4), F(1, 4)])
Fraction(95, 168)
>>> from decimal import Decimal as D
>>> statistics.mean([D("0.5"), D("0.78"), D("0.88"), D("0.988")])
Decimal('0.787')
harmonic_mean(data)函數(shù)
調(diào)和平均數(shù)又稱倒數(shù)平均數(shù),是平均數(shù)的一種。 harmonic_mean(data) 函數(shù)用于求調(diào)和平均數(shù),是總體各統(tǒng)計(jì)變量倒數(shù)的算術(shù)平均數(shù)的倒數(shù)。例如:
>>> statistics.harmonic_mean([4, 5, 7]) 5.0602409638554215
median(data)函數(shù)
median(data) 函數(shù)用于計(jì)算一組數(shù)據(jù)的中值。如果數(shù)據(jù)的個(gè)數(shù)是單數(shù),則中值是中間的數(shù);如果數(shù)據(jù)的個(gè)數(shù)是復(fù)數(shù),則中值是中間兩個(gè)數(shù)的平均數(shù)。例如:
>>> statistics.median([1, 4, 7]) 4 >>> statistics.median([1, 4, 7, 10]) 5.5 median_low(data)函數(shù) median_low(data) 函數(shù)用于計(jì)算一組數(shù)據(jù)的中小值。如果數(shù)據(jù)的個(gè)數(shù)是單數(shù),則中小值是中間的數(shù);如果數(shù)據(jù)的個(gè)數(shù)是復(fù)數(shù),則中小值是中間兩個(gè)數(shù)中最小的數(shù)。例如: >>> statistics.median_low([1, 4, 7]) 4 >>> statistics.median_low([1, 4, 7, 10]) 4
median_high(data)函數(shù)
median_high(data) 函數(shù)用于計(jì)算一組數(shù)據(jù)的中大值。如果數(shù)據(jù)的個(gè)數(shù)是單數(shù),則中大值是中間的數(shù);如果數(shù)據(jù)的個(gè)數(shù)是復(fù)數(shù),則中大值是中間兩個(gè)數(shù)中最大的數(shù)。例如:
>>> statistics.median_high([1, 4, 7])
4
>>> statistics.median_high([1, 4, 7, 10])
7
median_grouped(data, interval=1)函數(shù)
median_grouped(data, interval=1) 函數(shù)用于計(jì)算分組連續(xù)數(shù)據(jù)的中位數(shù)。其中 interval 表示數(shù)據(jù)之間的間隔,即組距。此函數(shù)計(jì)算方法較復(fù)雜,可參考公式 中位數(shù)=中位數(shù)所在組下限+{[(樣本總數(shù)/2-到中位數(shù)所在組下限的累加次數(shù))/中位數(shù)所在組的次數(shù)]*中位數(shù)的組距} ,如果數(shù)據(jù)是空的會(huì)報(bào) StatisticsError 錯(cuò)誤。例如:
>>> statistics.median_grouped([1, 2, 2, 3, 4, 4, 4, 4, 4, 5])
3.7
>>> statistics.median_grouped([3, 4, 4, 5, 6], interval=1)
4.25
>>> statistics.median_grouped([1, 3, 5, 5, 7], interval=2)
4.5
示例說明:
[1, 2, 2, 3, 4, 4, 4, 4, 4, 5]中位數(shù)在4這個(gè)分組里面
默認(rèn)組距為1
所在分組的下限為3.5
樣本總數(shù)為10
4分組里有5個(gè)數(shù)
小于3.5的有4個(gè)數(shù)
所以中位數(shù)為:3.5+(10/2-4)/5*1=3.5+1/5=3.7
mode(data)函數(shù)
mode(data) 函數(shù)用于計(jì)算一組數(shù)據(jù)的眾數(shù),即在數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù)。例如:
>>> statistics.mode([1, 1, 2, 3, 3, 3, 3, 4]) 3 >>> statistics.mode(["red", "blue", "blue", "blue", "green", "green", "red"]) 'blue'
總結(jié)
本節(jié)給大家介紹了 Python 中 statistics 模塊的常用操作,在實(shí)際開發(fā)中方便對(duì)數(shù)據(jù)進(jìn)行靈活的處理,對(duì)于實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)的功能提供了支撐。
示例代碼: Python-100-days-day043
以上所述是小編給大家介紹的詳解python statistics模塊及函數(shù)用法,希望對(duì)大家有所幫助!
- python隨機(jī)模塊random的22種函數(shù)(小結(jié))
- 使用Python函數(shù)進(jìn)行模塊化的實(shí)現(xiàn)
- Python3使用xml.dom.minidom和xml.etree模塊兒解析xml文件封裝函數(shù)的方法
- Python re 模塊findall() 函數(shù)返回值展現(xiàn)方式解析
- 對(duì)python中不同模塊(函數(shù)、類、變量)的調(diào)用詳解
- Python3中正則模塊re.compile、re.match及re.search函數(shù)用法詳解
- Python Json模塊中dumps、loads、dump、load函數(shù)介紹
- Python常用模塊函數(shù)代碼匯總解析
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)使用Keras構(gòu)建RNN訓(xùn)練
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)使用Keras構(gòu)建RNN網(wǎng)絡(luò)訓(xùn)練,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2022-05-05
顯卡驅(qū)動(dòng)CUDA?和?pytorch?CUDA?之間的區(qū)別
本文主要介紹了顯卡驅(qū)動(dòng)CUDA?和?pytorch?CUDA?之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
使用Python實(shí)現(xiàn)微信提醒備忘錄功能
最近工作比較繁雜,經(jīng)常忘事,有時(shí)候記了備忘錄結(jié)果卻忘記看備忘錄,但是微信是每天都會(huì)看的,于是就想到寫 一個(gè)基于微信的提醒系統(tǒng)。這篇文章主要介紹了使用Python實(shí)現(xiàn)微信提醒備忘錄功能,需要的朋友可以參考下2018-12-12
Python多線程Threading、子線程與守護(hù)線程實(shí)例詳解
這篇文章主要介紹了Python多線程Threading、子線程與守護(hù)線程,結(jié)合實(shí)例形式詳細(xì)分析了Python多線程Threading、子線程與守護(hù)線程相關(guān)概念、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
django admin.py 外鍵,反向查詢的實(shí)例
今天小編就為大家分享一篇django admin.py 外鍵,反向查詢的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Protocol Buffers(Protobuf)功能及使用方法
本文介紹了ProtocolBuffers(Protobuf)及其編譯器protoc,包括其數(shù)據(jù)描述語言的特性、編譯器的功能、.proto文件的定義、使用方法、支持的編程語言、安裝步驟、常用命令選項(xiàng)以及高級(jí)功能,感興趣的朋友跟隨小編一起看看吧2025-01-01
手把手教你使用TensorFlow2實(shí)現(xiàn)RNN
本文主要介紹了TensorFlow2實(shí)現(xiàn)RNN,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07

