Skip to main content

Maths functions

Project description

https://travis-ci.org/cjrh/cjrh_math.svg?branch=master https://coveralls.io/repos/github/cjrh/cjrh_math/badge.svg?branch=master https://img.shields.io/pypi/pyversions/cjrh_math.svg https://img.shields.io/github/tag/cjrh/cjrh_math.svg https://img.shields.io/badge/install-pip%20install%20cjrh_math-ff69b4.svg https://img.shields.io/pypi/v/cjrh_math.svg https://img.shields.io/badge/calver-YYYY.MM.MINOR-22bfda.svg

cjrh_math

A collection of handy maths functions.

Streaming mean and variance

Sometimes it can be very useful to update an existing mean and variance with new data, rather than have to calculate it again over the whole set. The functions below implement one of the algorithms described in Wikipedia.

def update_mean(n: int, mean: float, value: float) -> float

Given a new value, calculate a new mean using the existing mean and the size of data, n, seen so far.

def update_pvariance(n: int, mean: float, var: float, value: float) -> float
def update_variance(n: int, mean: float, var: float, value: float) -> float

Given a new value, calculate a new variance using the existing mean, existing variance var, and the size of data, n, seen so far.

Note that update_variance() is for sample variance while update_pvariance() is for population variance.

All functions are pure and therefore thread-safe.

Project details


Download files

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

Source Distribution

cjrh_math-2017.11.1.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

cjrh_math-2017.11.1-py2.py3-none-any.whl (13.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page