statistics --- 數學統計函式

在 3.4 版被加入.

原始碼:Lib/statistics.py


這個模組提供計算數值 (Real-valued) 資料的數學統計函式。

這個模組並非旨在與 NumPySciPy 等第三方函式庫,或者像 Minitab、SAS 和 Matlab 等專門設計給專業統計學家的高階統計軟體互相競爭。此模組的目標在於繪圖和科學計算。

除非特別註明,這些函數支援 intfloatDecimal 以及 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

平均值與中央位置量數

這些函式計算來自一個母體或樣本的平均值或代表值。

mean()

資料的算術平均數(平均值)。

fmean()

快速浮點數算數平均數,可調整權重。

geometric_mean()

資料的幾何平均數。

harmonic_mean()

資料的調和平均數。

kde()

Estimate the probability density distribution of the data.

kde_random()

Random sampling from the PDF generated by kde().

median()

資料的中位數(中間值)。

median_low()

資料中較小的中位數。

median_high()

資料中較大的中位數。

median_grouped()

分組資料的中位數(第 50 百分位數)。

mode()

離散 (discrete) 或名目 (nomial) 資料中的眾數(出現次數最多次的值),只回傳一個。