Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Simple statistical functions implemented in readable Python.

Project description

Circle CI codecov Documentation Status PyPI version

simple-statistics for Python.

simplestatistics is compatible with Python 2 & 3. ### Installation

pip install simplestatistics

Usage

>>> import simplestatistics as ss
>>> ss.mean([1, 2, 3])
2.0
>>> ss.t_test([1, 2, 2.4, 3, 0.9], 2)
-0.3461277235039042

Documentation

You can read the documentation online.

Or you can generate it yourself:

Inside simplestatistics/.

make html

Documentation will be generated in _build/html/.

Tests

If you want coverage reports, you need to have `coverage <https://pypi.python.org/pypi/coverage>`__ installed:

pip install coverage
nosetests --with-coverage --cover-package=simplestatistics --with-doctest

Otherwise, to just run the tests:

nosetests --with-doctest

Functions and examples

Descriptive statistics

Function Example
Min min([-3, 0, 3])
Max max([1, 2, 3])
Sum sum([1, 2, 3.5])
Quantiles quantile([3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20], [0.25, 0.75])
Product product([1.25, 2.75], [2.5, 3.40])

Measures of central tendency

Function Example
Mean mean([1, 2, 3])
Median median([10, 2, -5, -1])
Mode mode([2, 1, 3, 2, 1])
Geometric mean geometric_mean([1, 10])
Root mean square root_mean_square([1, -1, 1, -1])
Skewness skew([1, 2, 5])
Kurtosis kurtosis([1, 2, 3, 4, 5])

Measures of dispersion

Function Example
Sample and population variance variance([1, 2, 3], sample = True)
Standard deviation standard_deviation([1, 2, 3])
Interquartile range interquartile_range([1, 3, 5, 7])
Sum of Nth power deviations sum_nth_power_deviations([-1, 0, 2, 4], 3)
Standard scores (z-scores) z_scores([-2, -1, 0, 1, 2])

Linear regression

Function Example
Simple linear regression linear_regression([1, 2, 3, 4, 5], [4, 4.5, 5.5, 5.3, 6])
Linear regression line function generator linear_regression_line([.5, 9.5])([1, 2, 3])

Similarity

Function Example
Correlation correlate([2, 1, 0, -1, -2, -3, -4, -5], [0, 1, 1, 2, 3, 2, 4, 5])

Distributions

Function Example
Factorial factorial(20) or factorial([1, 5, 20])
Choose choose(5, 3)
Normal distribution normal(4, 8, 2) or normal([1, 4], 8, 2)
Binomial distribution binomial(4, 12, 0.2) or binomial([3,4,5], 12, 0.5)
One-sample t-test t_test([1, 2, 3, 4, 5, 6], 3.385)

Spirit and rules

  • Everything should be implemented in raw, organic, locally sourced Python.
  • Use libraries only if you have to and only when unrelated to the math/statistics. For example, from functools import reduce to make reduce available for those using python3. That’s okay, because it’s about making Python work and not about making the stats easier.
  • It’s okay to use operators and functions if they correspond to regular calculator buttons. For example, all calculators have a built-in square root function, so there is no need to implement that ourselves, we can use math.sqrt(). Anything beyond that, like mean, median, we have to write ourselves.

Pull requests are welcome!

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
simplestatistics-0.2.0.tar.gz (19.5 kB) Copy SHA256 hash SHA256 Source None Aug 27, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page