statscounter

Python's missing statistical Swiss Army knife


Keywords
stats, statistics, statistic, statistical, measurements, mean, average, avg, standard, deviation, std, dev, stddev, variance, Counter, StatsCounter, collection, measurement, measure, count, sum, elements, items
License
MIT
Install
pip install statscounter==0.0.2

Documentation

StatsCounter: A statistics-enabled Python container

     _        _                             _
 ___| |_ __ _| |_ ___  ___ ___  _   _ _ __ | |_ ___ _ __
/ __| __/ _` | __/ __|/ __/ _ \| | | | '_ \| __/ _ \ '__|
\__ \ || (_| | |_\__ \ (_| (_) | |_| | | | | ||  __/ |
|___/\__\__,_|\__|___/\___\___/ \__,_|_| |_|\__\___|_|

StatsCounter is a GNU Licensed, statistics powered version of Python's standard library Counter class. It attaches several helpful methods that can be used to make your data-driven uses a breeze.

Usage

As a histogram

>>> import statscounter as stats
>>> letter_freq = stats.StatsCounter(a=1, b=2, c=3, d=4, e=4, f=6)
>>> letter_freq.mean()      # average frequency
3.3333333333333335
>>> letter_freq.mode()      # most frequent element
4
>>> letter_freq.median()    # the median number (avg if even # of items)
3.5
>>> letter_freq.variance()  # sample variance
3.066666666666667
>>> letter_freq.stdev()     # sample standard deviation
1.7511900715418263
>>> letter_freq.pvariance() # population variance
2.555555555555556
>>> letter_freq.pstdev()    # population std. dev.
1.5986105077709065
>>> letter_freq.max()       # the maximum value
6
>>> letter_freq.argmax()    # the argument yielding the maximum value
"f"

As a utility

>>> import statscounter as stats
>>> stats.mean([1, 2, 3, 4, 4, 6])      # average frequency
3.3333333333333335
>>> stats.mode([1, 2, 3, 4, 4, 6])      # most frequent element
4
>>> stats.median([1, 2, 3, 4, 4, 6])    # the median number (avg if even # of items)
3.5
>>> stats.variance([1, 2, 3, 4, 4, 6])  # sample variance
3.066666666666667
>>> stats.stdev([1, 2, 3, 4, 4, 6])     # sample standard deviation
1.7511900715418263
>>> stats.pvariance([1, 2, 3, 4, 4, 6]) # population variance
2.555555555555556
>>> stats.pstdev([1, 2, 3, 4, 4, 6])    # population std. dev.
1.5986105077709065