Uniform Distribution#

class UniformDistribution(amplitude: float = 1.0, low: float = 0.0, high: float = 1.0, normalize: bool = False)[source]#

Bases: BaseDistribution

Class for Uniform Distribution.

Parameters:
  • amplitude (float, optional) – The amplitude of the PDF. Defaults to 1.0. Ignored if normalize is True.

  • low (float, optional) – Lower bound of distribution.

  • high (float, optional) – Upper bound of distribution.

  • normalize (bool, optional) – If True, the distribution is normalized so that the total area under the PDF equals 1. Defaults to False.

Raises:

NegativeAmplitudeError – If the provided value of amplitude is negative.

Attributes:
mean

The mean of the distribution.

median

The median of the distribution.

mode

The mode of the distribution.

stddev

The standard deviation of the distribution.

variance

The variance of the distribution.

Methods

cdf(x)

Compute the cumulative density function (CDF) for the distribution.

pdf(x)

Compute the probability density function (PDF) for the distribution.

scipy_like([loc, scale])

Instantiate UniformDistribution with scipy parametrization.

stats()

Computes and returns the statistical properties of the distribution, including,

Examples

Importing libraries:

3import matplotlib.pyplot as plt
4import numpy as np
5from scipy.stats import uniform
6
7from pymultifit.distributions import UniformDistribution

Generating a standard Uniform(0, 1) distribution with pyMultiFit and scipy:

 9x_values = np.linspace(start=-10, stop=10, num=500)
10
11y_multifit = UniformDistribution(normalize=True)
12y_scipy = uniform

Plotting PDF and CDF:

14f, ax = plt.subplots(1, 2, figsize=(12, 5))
15
16ax[0].plot(x_values, y_scipy.pdf(x=x_values), label='Scipy Uniform')
17ax[0].plot(x_values, y_multifit.pdf(x_values), 'k:', label='pyMultiFit Uniform')
18ax[0].set_ylabel('f(x)')
19
20ax[1].plot(x_values, y_scipy.cdf(x=x_values), label='Scipy Uniform')
21ax[1].plot(x_values, y_multifit.cdf(x_values), 'k:', label='pyMultiFit Uniform')
22ax[1].set_ylabel('F(x)')
23
24f.suptitle('Uniform(0, 1)')
25
26for i in ax:
27    i.set_xlabel('X')
28    i.legend()
29plt.tight_layout()
Uniform(0, 1)

Generating a translated Uniform(3, 5) distribution:

32y_multifit = UniformDistribution(low=3, high=5, normalize=True)

Plotting PDF and CDF:

34f, ax = plt.subplots(1, 2, figsize=(12, 5))
35
36ax[0].plot(x_values, y_scipy.pdf(x=x_values, loc=3, scale=5), label='Scipy translated Uniform')
37ax[0].plot(x_values, y_multifit.pdf(x_values), 'k:', label='pyMultiFit translated Uniform')
38ax[0].set_ylabel('f(x)')
39
40ax[1].plot(x_values, y_scipy.cdf(x=x_values, loc=3, scale=5), label='Scipy translated Uniform')
41ax[1].plot(x_values, y_multifit.cdf(x_values), 'k:', label='pyMultiFit translated Uniform')
42ax[1].set_ylabel('F(x)')
43
44f.suptitle(r'Uniform(3, 5)')
45
46for i in ax:
47    i.set_xlabel('X')
48    i.legend()
49plt.tight_layout()
Uniform(3, 5)
cdf(x: array) array[source]#

Compute the cumulative density function (CDF) for the distribution.

Parameters:

x – Input array at which to evaluate the CDF.

pdf(x: ndarray) ndarray[source]#

Compute the probability density function (PDF) for the distribution.

Parameters:

x – Input array at which to evaluate the PDF.

classmethod scipy_like(loc: float = 0.0, scale: float = 1.0)[source]#

Instantiate UniformDistribution with scipy parametrization.

Parameters:
loc: float, optional

The location parameter. Defaults to 0.0.

scale: float, optional

The scale parameter. Defaults to 1.0.

Returns:
UniformDistribution

An instance of normalized UniformDistribution.

stats() Dict[str, float][source]#

Computes and returns the statistical properties of the distribution, including,

  1. mean,

  2. median,

  3. variance, and

  4. standard deviation.

Returns:

A dictionary containing statistical properties such as mean, variance, etc.

Return type:

Dict[str, float]

Notes

If any of the parameter is not computable for a distribution, this method returns None.

property mean#

The mean of the distribution.

property median#

The median of the distribution.

property mode#

The mode of the distribution.

property stddev#

The standard deviation of the distribution.

property variance#

The variance of the distribution.

This class internally utilizes the following functions from utilities_d module:

Full Import#

from pymultifit.distributions.uniform_d import UniformDistribution