Warning
This is a review version of the documentation for PyOpenSci submission.
Gaussian Distribution#
- class GaussianDistribution(amplitude: float = 1.0, mu: float = 0.0, std: float = 1.0, normalize: bool = False)[source]#
Bases:
BaseDistributionClass for Gaussian distribution.
- Parameters:
amplitude (float, optional) – The amplitude of the PDF. Defaults to 1.0. Ignored if normalize is
True.mu (float, optional) – The mean parameter, \(\mu\). Defaults to 0.0.
std (float, optional) – The standard deviation parameter, \(\sigma\). Defaults to 1.0.
normalize (bool, optional) – If
True, the distribution is normalized so that the total area under the PDF equals 1. Defaults toFalse.
- Raises:
NegativeAmplitudeError – If the provided value of amplitude is negative.
NegativeStandardDeviationError – If the provided value of standard deviation is negative.
- Attributes:
Methods
cdf(x)Compute the cumulative density function (CDF) for the distribution.
from_scipy_params([loc, scale])Instantiate GaussianDistribution with scipy parametrization.
logcdf(x)Compute the log cumulative density function (logCDF) for the distribution.
logpdf(x)Compute the log probability density function (logPDF) for the distribution.
pdf(x)Compute the probability density function (PDF) for the distribution.
scipy_like([loc, scale])Instantiate GaussianDistribution 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 norm 6 7from pymultifit.distributions import GaussianDistribution
Generating a standard Gaussian(\(\mu=0, \sigma = 1\)) distribution with
pyMultiFitandscipy:9x_values = np.linspace(start=-10, stop=10, num=500) 10 11y_multifit = GaussianDistribution(normalize=True) 12y_scipy = norm
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 Gaussian') 17ax[0].plot(x_values, y_multifit.pdf(x_values), 'k:', label='pyMultiFit Gaussian') 18ax[0].set_ylabel('f(x)') 19 20ax[1].plot(x_values, y_scipy.cdf(x=x_values), label='Scipy Gaussian') 21ax[1].plot(x_values, y_multifit.cdf(x_values), 'k:', label='pyMultiFit Gaussian') 22ax[1].set_ylabel('F(x)') 23 24f.suptitle('Gaussian(0, 1)') 25 26for i in ax: 27 i.set_xlabel('X') 28 i.legend() 29plt.tight_layout()
Generating a translated Gaussian(\(\mu=3, \sigma=2\)) distribution:
32y_multifit = GaussianDistribution(mu=3, std=2, 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=2), label='Scipy translated Gaussian') 37ax[0].plot(x_values, y_multifit.pdf(x_values), 'k:', label='pyMultiFit translated Gaussian') 38ax[0].set_ylabel('f(x)') 39 40ax[1].plot(x_values, y_scipy.cdf(x=x_values, loc=3, scale=2), label='Scipy translated Gaussian') 41ax[1].plot(x_values, y_multifit.cdf(x_values), 'k:', label='pyMultiFit translated Gaussian') 42ax[1].set_ylabel('F(x)') 43 44f.suptitle(r'Gaussian(3, 2)') 45 46for i in ax: 47 i.set_xlabel('X') 48 i.legend() 49plt.tight_layout()
- cdf(x: ndarray) ndarray[source]#
Compute the cumulative density function (CDF) for the distribution.
- Parameters:
x – Input array at which to evaluate the CDF.
- classmethod from_scipy_params(loc: float = 0.0, scale: float = 1.0) GaussianDistribution[source]#
Instantiate GaussianDistribution with scipy parametrization.
- Parameters:
- loc: float, optional
The mean parameter. Defaults to 0.0.
- scale: float, optional
The scale parameter. Defaults to 1.0.
- Returns:
- GaussianDistribution
An instance of normalized GaussianDistribution.
- logcdf(x: ndarray) ndarray[source]#
Compute the log cumulative density function (logCDF) for the distribution.
- Parameters:
x – Input array at which to evaluate the logCDF.
- logpdf(x: ndarray) ndarray[source]#
Compute the log probability density function (logPDF) for the distribution.
- Parameters:
x – Input array at which to evaluate the logPDF.
- 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) GaussianDistribution[source]#
Instantiate GaussianDistribution with scipy parametrization.
- Parameters:
- loc: float, optional
The mean parameter. Defaults to 0.0.
- scale: float, optional
The scale parameter. Defaults to 1.0.
- Returns:
- GaussianDistribution
An instance of normalized GaussianDistribution.
Deprecated since version 1.0.7: Use from_scipy_params instead of scipy_like. scipy_like will be removed in a future release.
- stats() Dict[str, float][source]#
Computes and returns the statistical properties of the distribution, including,
mean,
median,
variance, and
standard deviation.
- Returns:
A dictionary containing statistical properties such as mean, variance, etc.
- Return type:
Notes
If any of the parameter is not computable for a distribution, this method returns None.
This class internally utilizes the following functions from utilities_d module:
Recommended Import#
from pymultifit.distributions import GaussianDistribution
Full Import#
from pymultifit.distributions.gaussian_d import GaussianDistribution