Python3標准庫:statistics統計計算


1. statistics統計計算

statistics模塊實現了很多常用的統計公式,允許使用Python的各種數值類型(int、float、Decimal和Fraction)來完成高效計算。

1.1 平均值

共支持3種形式的平均值:均值(mean),中值或中位數(median),以及眾數(mode)。可以用mean()計算算術平均值。

from statistics import *

data = [1, 2, 2, 5, 10, 12]

print('{:0.2f}'.format(mean(data)))

對於整數和浮點數,這個函數的返回值總是float。對於Decimal和Fraction輸入數據,結果與輸入的類型相同。

可以使用mode()計算一個數據集中最常見的數據點。 

from statistics import *

data = [1, 2, 2, 5, 10, 12]

print(mode(data))

其返回值總是輸入數據集的一個成員。由於mode()把輸入處理為一個離散值集合,並且統計出現次數,所以實際上輸入不必是數值。

計算中值(或中位數)有4種變形。 前三種是一般算法的簡單版本,只是在處理元素個數為偶數的數據集時采用了不同方法。

from statistics import *

data = [1, 2, 2, 5, 10, 12]

print('median     : {:0.2f}'.format(median(data)))
print('low        : {:0.2f}'.format(median_low(data)))
print('high       : {:0.2f}'.format(median_high(data)))

median()會查找中間的值。如果數據集包含偶數個值,則取兩個中間元素的平均值。median_low()總是返回輸入數據集中的一個值,對於有偶數個元素的數據集,會返回兩個中間元素中較小的一個。median_high()與之類似,不過會返回兩個中間元素中較大的一個。

中值計算的第4個版本是median_grouped(),它會把輸入看作連續數據。這個函數計算50%百分位數(即中值)的做法是首先是要所提供的間隔寬度找出中值區間,然后使用落入該區間的數據集中的具體值位置在該區間中插值。 

from statistics import *

data = [10, 20, 30, 40]

print('1: {:0.2f}'.format(median_grouped(data, interval=1)))
print('2: {:0.2f}'.format(median_grouped(data, interval=2)))
print('3: {:0.2f}'.format(median_grouped(data, interval=3)))

隨着間隔寬度的增加,為相同數據集計算的中值會改變。

1.2 方差

統計使用兩個值描述一個值集相對於均值的分散度。方差(variance)是各個值與均值之差平方的平均,標准偏差或標准差(standard deviation)是方差的平方根(這很有用,因為取平方根可以使標准差與輸入數據有相同的單位)。如果方差或標准差的值很大,這說明一個數據集是分散的,而如果這個值很小,則說明數據在靠近均值聚集。 

import statistics

x =[1,2,3,4,5,10,9,8,7,6]
y1 = statistics.pvariance(x)
print(y1)
y2 = statistics.pstdev(x)
print(y2)
y3 = statistics.variance(x)
print(y3)
y4 = statistics.stdev(x)
print(y4)

Python包括兩組函數來計算方差和標准差,具體取決於數據集是表示總體還是總體中的一個樣本。這個例子首先pvariance()和pstdev()計算總體的方差和標准哈。然后使用variance()和stdev()計算一個子集的樣本方差和標准差。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM