Skip to main content

Library for calculating statistical distributions, written in pure Python with zero dependencies.

Project description

Promethium 🐍

PyPI - Version PyPI - Python Version

Library for calculating statistical distributions, written in pure Python with zero dependencies.

Contribution: CONTRIBUTING.md

Documentation: README.md


Documentation


Binomial Distribution

Probability mass function

binomial.pmf(r, n, p)

For the random variable X with the binomial distribution B(n, p), calculate the probability mass function.
Where r is the number of successes, n is the number of trials, and p is the probability of success.

Example
To calculate P(X=7) for the binomial distribution X~B(11, 0.33):

>>> from promethium import binomial
>>> binomial.pmf(7, 11, 0.33)
0.029656979029412885

Cumulative distribution function

binomial.cdf(r, n, p)

For the random variable X with the binomial distribution B(n, p), calculate the cumulative distribution function.
Where r is the number of successes, n is the number of trials, and p is the probability of success.

Example
To calculate P(X≤7) for the binomial distribution X~B(11, 0.33):

>>> from promethium import binomial.cdf
>>> binomial.cdf(7, 11, 0.33)
0.9912362670526581

Inverse cumulative distribution function

binomial.ppf(q, n, p)

For the random variable X with the binomial distribution B(n, p), calculate the inverse for the cumulative distribution function.
Where q is the cumulative probability, n is the number of trials, and p is the probability of success.

binomial.ppf(q, n, p) returns the smallest integer x such that binomial.cdf(x, n, p) is greater than or equal to q.

Example
To calculate the corresponding value for r (the number of successes) given the value for q (the cumulative probability):

>>> from promethium import binomial
>>> binomial.ppf(0.9912362670526581, 11, 0.333)
7
>>> binomial.cdf(7, 11, 0.333)
0.9912362670526581

Chi-Squared Distribution

Probability density function

chi2.pdf(x, df)

Probability density function for the chi-squared distribution X~X²(df), where df is the degrees of the freedom.

Cumulative distribution function

chi2.cdf(x, df)

Cumulative distribution function for the chi-squared distribution X~X²(df), where df is the degrees of the freedom.

Example
To calculate P(0≤X≤0.556) for the chi-squared distribution X~X²(3):

>>> from promethium import chi2
>>> chi2.cdf(0.556, 3)
0.09357297231516998

Normal Distribution

Probability density function

normal.pdf(x, µ, σ)

Probability density function for the normal distribution X~N(µ, σ).
Where µ is the mean, and σ is the standard deviation.

Cumulative distribution function

normal.cdf(x, µ, σ)

Cumulative distribution function for the normal distribution X~N(µ, σ).
Where µ is the mean, and σ is the standard deviation.

Example
To calculate P(X≤0.891) for the normal distribution X~N(0.734, 0.114):

>>> from promethium import normal
>>> normal.cdf(0.891, 0.734, 0.114)
0.9157737045522477

Inverse cumulative distribution function

normal.ppf(y, µ, σ)

Inverse cumulative distribution function for the normal distribution X~N(µ, σ).
Where µ is the mean, and σ is the standard deviation.

normal.ppf(y, µ, σ) returns the smallest integer x such that normal.cdf(x, µ, σ) is greater than or equal to y.

Example
To calculate the corresponding value for x given the value for y:

>>> from promethium import normal
>>> normal.ppf(0.9157737045522477, 0.734, 0.114)
0.891
>>> normal.cdf(0.891, 0.734, 0.114)
0.9157737045522477

Poisson Distribution

Probability mass function

poisson.pmf(r, m)

For the random variable X with the poisson distribution Po(m), calculate the probability mass function.
Where r is the number of occurrences, and m is the mean rate of occurrence.

Example
To calculate P(X=7) for the poisson distribution X~Po(11.556):

>>> from promethium import poisson
>>> poisson(11, 23.445)
0.0019380401123575617

Cumulative distribution function

poisson.cdf(r, m)

For the random variable X with the poisson distribution Po(m), calculate the cumulative distribution function.
Where r is the number of occurrences, and m is the mean rate of occurrence.

Example
To calculate P(X≤7) for the poisson distribution X~Po(11.556):

>>> from promethium import poisson
>>> poisson.cdf(11, 23.445)
0.0034549033698374467

Inverse cumulative distribution

poisson.ppf(q, m)

For the random variable X with the poisson distribution Po(m), calculate the inverse for the cumulative distribution function.
Where q is the cumulative probability, and m is the mean rate of occurrence.

poisson.ppf(q, m) returns the smallest integer x such that poisson.cdf(x, m) is greater than or equal to q.

Example
To calculate the corresponding value for r (number of occurrences) given the values for q (cumulative probability):

>>> from promethium import poisson
>>> poisson.ppf(0.0034549033698374467, 23.445)
11
>>> poisson.cdf(11, 23.445)
0.0034549033698374467

Geometric Distribution

Probability mass function

geometric.pmf(x, p)

Probability mass function for the geometric distribution X~G(p).
Where x is the number of trials before the first success, and p is the probability of success.

Example
To calculate P(X=3) for the geometric distribution X~G(0.491):

>>> from promethium import geometric
>>> geometric.pmf(3, 0.491)
0.127208771

Cumulative distribution function

geometric.cdf(x, p)

Cumulative distribution function for the geometric distribution X~G(p).
Where x is the number of trials before the first success, and p is the probability of success.

Example
To calculate P(X≤3) for the geometric distribution X~G(0.491):

>>> from promethium import geometric
>>> geometric.cdf(3, 0.491)
0.868127771

Inverse cumulative distribution function

geometric.ppf(area, p)

Inverse cumulative distribution function for the geometric distribution X~G(p).
Where x is the number of trials before the first success, and p is the probability of success.

geometric.ppf(area, p) returns the smallest integer x such that geometric.cdf(x, p) is greater than or equal to area.

Example
To calculate the corresponding value for x given the value for area:

>>> from promethium import geometric
>>> geometric.ppf(0.868, 0.491)
3
>> geometric.cdf(3, 0.491)
0.868127771

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

promethium-0.7.4.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

promethium-0.7.4-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file promethium-0.7.4.tar.gz.

File metadata

  • Download URL: promethium-0.7.4.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for promethium-0.7.4.tar.gz
Algorithm Hash digest
SHA256 8b606cbf7f903d6f0ea573ca02d40e037d469f48fb79e05b3648bdd37495a759
MD5 0348c744ae663ef4b34010e2e25ee97c
BLAKE2b-256 f5095d9a14267bf71a49c23738f78ec350947b29d2bafa29dd3a22308f4755ae

See more details on using hashes here.

File details

Details for the file promethium-0.7.4-py3-none-any.whl.

File metadata

  • Download URL: promethium-0.7.4-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for promethium-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f5dc4bd29274e2012670686545b877bfcbfadbffcbd7aa991f24b7b67b2cac06
MD5 322108d579e5f1fdd430e4f980e27eb5
BLAKE2b-256 16572583d19fce763cecd9b80aa3c4647983a3899dffbebc934b6e93cbf22e03

See more details on using hashes here.

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