Python中statistics模塊 基礎統計計算statistics的常用函數

python的statistics模塊提供基礎統計功能,適合初學者和小規模數據分析。1. 平均值相關函數包括mean(算術平均)、fmean(強制浮點結果)和geometric_mean(幾何平均,要求正數)。2. 中位數用median,眾數用mode(返回首個眾數)或multimode(返回所有眾數列表)。3. 方差與標準差通過variance(樣本方差)、pvariance(總體方差)、stdev(樣本標準差)、pstdev(總體標準差)計算。4. 其他函數如quantiles(分位數)、covariance(協方差)、correlation(皮爾遜系數)用于更深入分析,適用于python 3.8及以上版本。該模塊無需安裝,適合快速查看數據特征或小型項目使用。

在Python中,statistics模塊是一個標準庫模塊,適合做基礎的統計計算。它不需要額外安裝,開箱即用,非常適合初學者或日常小規模數據分析使用。雖然功能不如numpypandas強大,但對一些常見統計指標來說,已經夠用了。


1. 平均值相關函數:mean、fmean、geometric_mean

這幾個函數都用于計算平均值,但略有區別

  • mean(data):計算算術平均值,適用于大多數情況。
  • fmean(data):強制將結果轉為浮點數,效率略高,推薦用于只需要浮點結果的情況。
  • geometric_mean(data):計算幾何平均值,常用于增長率、比率等數據。
import statistics  data = [1, 2, 3, 4, 5]  print(statistics.mean(data))         # 輸出 3 print(statistics.fmean(data))        # 輸出 3.0 print(statistics.geometric_mean(data))  # 約等于 2.605

注意:如果數據中包含零或負數,調用geometric_mean會拋出錯誤,因為它要求所有值為正。


2. 中位數和眾數:median、mode、multimode

  • median(data):返回中間值。如果數據個數是偶數,則取中間兩個數的平均。
  • mode(data):返回出現次數最多的值(眾數)。如果有多個眾數,只返回第一個。
  • multimode(data):返回所有眾數組成的列表,適用于多眾數場景。
data = [1, 2, 2, 3, 4, 4, 4]  print(statistics.median(data))       # 輸出 3 print(statistics.mode(data))         # 輸出 4 print(statistics.multimode(data))    # 輸出 [4]

如果數據全是唯一的,調用mode會拋出StatisticsError。這種情況下建議先判斷是否有重復項,或者使用collections.Counter來處理。


3. 方差與標準差:variance、pvariance、stdev、pstdev

這些函數用來衡量數據的離散程度:

立即學習Python免費學習筆記(深入)”;

  • variance(data):樣本方差,默認除以n-1(無偏估計)。
  • pvariance(data):總體方差,除以n。
  • stdev(data):樣本標準差,就是sqrt(variance(…))。
  • pstdev(data):總體標準差。
data = [1, 2, 3, 4, 5]  print(statistics.variance(data))     # 輸出 2.5 print(statistics.pvariance(data))    # 輸出 2.0 print(statistics.stdev(data))        # 輸出約 1.58

如果你是在處理完整數據集而不是抽樣數據,應該用pvariance和pstdev。


4. 其他實用函數:quantiles、covariance、correlation

這些函數在Python 3.8之后版本中可用,可以做一些更細致的分析:

  • quantiles(data, n=4):分位數,默認四分位。
  • covariance(x, y):計算兩組數據的協方差。
  • correlation(x, y):計算皮爾遜相關系數,反映線性相關程度。
x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10]  print(statistics.quantiles(x))       # 輸出 [2.0, 3.0, 4.0] print(statistics.covariance(x, y))   # 輸出 2.5 print(statistics.correlation(x, y))  # 輸出 1.0

這些函數對于理解數據分布和變量間關系很有幫助,但要注意輸入數據不能有缺失值,否則會報錯。


總的來說,statistics模塊雖然簡單,但涵蓋了常見的基礎統計需求。
對于日常快速查看數據特征、寫教學代碼或小型項目來說,非常實用。
如果你只是想算個平均數、看看中位數或者做個簡單的分析,不用引入其他庫,直接用這個就夠了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享