Example #1
0
def variance(collection, unbiased = True):
    """Return the variance of a collection of numbers.

    Examples:

    >>> variance([])
    0.0

    >>> variance([1])
    0.0

    >>> variance([1,1,1])
    0.0

    >>> variance([1,2,3])
    1.0

    >>> variance([1,2,3], unbiased = False)
    0.66666666666666663

    """
    if not collection:
        return float(0)

    m = mean(collection)
    n = float(len(collection))
    sq = [ pow(x-m, 2) for x in collection ]
    scale = 1/n if not unbiased or n == 1 else 1/(n-1)
    return scale*fsum(sq)
Example #2
0
def mean(sequence):
    """Return the mean of an iterable numeric sequence (e.g., a list).

    Examples:

    >>> mean([1,2,3])
    2.0

    >>> mean([])
    0

    """
    return fsum(sequence) / len(sequence) if sequence else 0