a
XC?h³” ã @ sÀ d Z g d¢ZddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZm
Z
ddlmZmZmZmZmZmZmZmZ dd lmZ dd
lmZ G dd„ deƒZdGd
d„Zdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dHdd„Z#dd„ Z$d d!„ Z%d"d#„ Z&d$d%„ Z'd&d'„ Z(d(d)„ Z)d*d+„ Z*dId-d.„Z+d/d0„ Z,d1d2„ Z-d3d4d5œd6d7„Z.dJd8d9„Z/dKd:d;„Z0dLdd?„Z2dNd@dA„Z3dBdC„ Z4zddDl5m4Z4 W n e6�y¬ Y n0 G dEdF„ dFƒZ7dS )Oam
Basic statistics module.
This module provides functions for calculating statistics of data, including
averages, variance, and standard deviation.
Calculating averages
--------------------
================== ==================================================
Function Description
================== ==================================================
mean Arithmetic mean (average) of data.
fmean Fast, floating point arithmetic mean.
geometric_mean Geometric mean of data.
harmonic_mean Harmonic mean of data.
median Median (middle value) of data.
median_low Low median of data.
median_high High median of data.
median_grouped Median, or 50th percentile, of grouped data.
mode Mode (most common value) of data.
multimode List of modes (most common values of data).
quantiles Divide data into intervals with equal probability.
================== ==================================================
Calculate the arithmetic mean ("the average") of data:
>>> mean([-1.0, 2.5, 3.25, 5.75])
2.625
Calculate the standard median of discrete data:
>>> median([2, 3, 4, 5])
3.5
Calculate the median, or 50th percentile, of data grouped into class intervals
centred on the data values provided. E.g. if your data points are rounded to
the nearest whole number:
>>> median_grouped([2, 2, 3, 3, 3, 4]) #doctest: +ELLIPSIS
2.8333333333...
This should be interpreted in this way: you have two data points in the class
interval 1.5-2.5, three data points in the class interval 2.5-3.5, and one in
the class interval 3.5-4.5. The median of these data points is 2.8333...
Calculating variability or spread
---------------------------------
================== =============================================
Function Description
================== =============================================
pvariance Population variance of data.
variance Sample variance of data.
pstdev Population standard deviation of data.
stdev Sample standard deviation of data.
================== =============================================
Calculate the standard deviation of sample data:
>>> stdev([2.5, 3.25, 5.5, 11.25, 11.75]) #doctest: +ELLIPSIS
4.38961843444...
If you have previously calculated the mean, you can pass it as the optional
second argument to the four "spread" functions to avoid recalculating it:
>>> data = [1, 2, 2, 4, 4, 4, 5, 6]
>>> mu = mean(data)
>>> pvariance(data, mu)
2.5
Exceptions
----------
A single exception is defined: StatisticsError is a subclass of ValueError.
)Ú
NormalDistÚStatisticsErrorÚfmeanÚgeometric_meanÚ
harmonic_meanÚmeanÚmedianÚmedian_groupedÚmedian_highÚ
median_lowÚmodeÚ multimodeÚpstdevÚ pvarianceÚ quantilesÚstdevÚvarianceé N©ÚFraction)ÚDecimal)Úgroupby)Úbisect_leftÚbisect_right)ÚhypotÚsqrtÚfabsÚexpÚerfÚtauÚlogÚfsum)Ú
itemgetter)ÚCounterc @ s e Zd ZdS )r N)Ú__name__Ú
__module__Ú__qualname__© r&