statistics --- 數學統計函式¶
在 3.4 版被加入.
這個模組提供計算數值 (Real-valued) 資料的數學統計函式。
這個模組並非旨在與 NumPy、SciPy 等第三方函式庫,或者像 Minitab、SAS 和 Matlab 等專門設計給專業統計學家的高階統計軟體互相競爭。此模組的目標在於繪圖和科學計算。
除非特別註明,這些函數支援 int、float、Decimal 以及 Fraction。目前不支援其他型別(無論是否為數值型別)。含有混合型別的資料的集合亦是尚未定義,且取決於該型別的實作。若你的輸入資料含有混合型別,你可以考慮使用 map() 來確保結果是一致的,例如:map(float, input_data)。
有些資料集使用 NaN (非數)來表示缺漏的資料。由於 NaN 具有特殊的比較語義,在排序資料或是統計出現次數的統計函數中,會引發意料之外或是未定義的行為。受影響的函數包含 median()、median_low()、 median_high()、 median_grouped()、 mode()、 multimode() 以及 quantiles()。在呼叫這些函數之前,應該先移除 NaN 值:
>>> from statistics import median
>>> from math import isnan
>>> from itertools import filterfalse
>>> data = [20.7, float('NaN'),19.2, 18.3, float('NaN'), 14.4]
>>> sorted(data) # This has surprising behavior
[20.7, nan, 14.4, 18.3, 19.2, nan]
>>> median(data) # This result is unexpected
16.35
>>> sum(map(isnan, data)) # Number of missing values
2
>>> clean = list(filterfalse(isnan, data)) # Strip NaN values
>>> clean
[20.7, 19.2, 18.3, 14.4]
>>> sorted(clean) # Sorting now works as expected
[14.4, 18.3, 19.2, 20.7]
>>> median(clean) # This result is now well defined
18.75
平均值與中央位置量數¶
這些函式計算來自一個母體或樣本的平均值或代表值。
資料的算術平均數(平均值)。 |
|
快速浮點數算數平均數,可調整權重。 |
|
資料的幾何平均數。 |
|
資料的調和平均數。 |
|
Estimate the probability density distribution of the data. |
|
Random sampling from the PDF generated by kde(). |
|
資料的中位數(中間值)。 |
|
資料中較小的中位數。 |
|
資料中較大的中位數。 |
|
分組資料的中位數(第 50 百分位數)。 |
|
離散 (discrete) 或名目 (nomial) 資料中的眾數(出現次數最多次的值),只回傳一個。 |
|
離散或名目資料中的眾數(出現次數最多次的值)組成的 list。 |
|
將資料分成數個具有相等機率的區間,即分位數 (quantile)。 |
離度 (spread) 的測量¶
這些函式計算母體或樣本偏離平均值的程度。
資料的母體標準差。 |
|
資料的母體變異數。 |
|
資料的樣本標準差。 |
|
資料的樣本變異數。 |
兩個輸入之間的關係統計¶
這些函式計算兩個輸入之間的關係統計數據。
兩變數的樣本共變異數。 |
|
Pearson 與 Spearman 相關係數 (correlation coefficient)。 |
|
簡單線性迴歸的斜率和截距。 |
函式細節¶
註:這些函數並不要求輸入的資料必須排序過。為了閱讀方便,大部份的範例仍已排序過。
- statistics.mean(data)¶
回傳 data 的樣本算數平均數,輸入可為一個 sequence 或者 iterable。
算數平均數為資料總和除以資料點的數目。他通常被稱為「平均值」,儘管它只是眾多不同的數學平均值之一。它是衡量資料集中位置的一種指標。
若 data 為空,則會引發
StatisticsError。使用範例:
>>> mean([1, 2, 3, 4, 4]) 2.8 >>> mean([-1.0, 2.5, 3.25, 5.75]) 2.625 >>> from fractions import Fraction as F >>> mean([F(3, 7), F(1, 21), F(5, 3), F(1, 3)]) Fraction(13, 21) >>> from decimal import Decimal as D