Skip to content

cds2.distributions

Deprecated since 4.3.0

Importing this module emits a DeprecationWarning. Use scipy.stats directly instead. See Deprecated modules for the migration guide.

Probability distribution helpers: pdf/cdf/ppf for twenty-plus families.

Probability distribution helpers built on scipy.stats.

student_t_pdf(x, df)

Student's t density with df degrees of freedom.

Source code in src/cds2/distributions.py
90
91
92
def student_t_pdf(x: object, df: float) -> NDArray[np.float64]:
    """Student's t density with ``df`` degrees of freedom."""
    return _wrap(sps.t.pdf(_as_array(x), df=df))

student_t_cdf(x, df)

Student's t cumulative distribution function.

Source code in src/cds2/distributions.py
95
96
97
def student_t_cdf(x: object, df: float) -> NDArray[np.float64]:
    """Student's t cumulative distribution function."""
    return _wrap(sps.t.cdf(_as_array(x), df=df))

student_t_ppf(q, df)

Student's t quantile function.

Source code in src/cds2/distributions.py
100
101
102
def student_t_ppf(q: object, df: float) -> NDArray[np.float64]:
    """Student's t quantile function."""
    return _wrap(sps.t.ppf(_as_array(q), df=df))

chi2_pdf(x, df)

Chi-squared density.

Source code in src/cds2/distributions.py
106
107
108
def chi2_pdf(x: object, df: float) -> NDArray[np.float64]:
    """Chi-squared density."""
    return _wrap(sps.chi2.pdf(_as_array(x), df=df))

chi2_cdf(x, df)

Chi-squared cumulative distribution function.

Source code in src/cds2/distributions.py
111
112
113
def chi2_cdf(x: object, df: float) -> NDArray[np.float64]:
    """Chi-squared cumulative distribution function."""
    return _wrap(sps.chi2.cdf(_as_array(x), df=df))

chi2_ppf(q, df)

Chi-squared quantile function.

Source code in src/cds2/distributions.py
116
117
118
def chi2_ppf(q: object, df: float) -> NDArray[np.float64]:
    """Chi-squared quantile function."""
    return _wrap(sps.chi2.ppf(_as_array(q), df=df))

f_pdf(x, dfn, dfd)

F distribution density.

Source code in src/cds2/distributions.py
122
123
124
def f_pdf(x: object, dfn: float, dfd: float) -> NDArray[np.float64]:
    """F distribution density."""
    return _wrap(sps.f.pdf(_as_array(x), dfn=dfn, dfd=dfd))

f_cdf(x, dfn, dfd)

F cumulative distribution function.

Source code in src/cds2/distributions.py
127
128
129
def f_cdf(x: object, dfn: float, dfd: float) -> NDArray[np.float64]:
    """F cumulative distribution function."""
    return _wrap(sps.f.cdf(_as_array(x), dfn=dfn, dfd=dfd))

f_ppf(q, dfn, dfd)

F quantile function.

Source code in src/cds2/distributions.py
132
133
134
def f_ppf(q: object, dfn: float, dfd: float) -> NDArray[np.float64]:
    """F quantile function."""
    return _wrap(sps.f.ppf(_as_array(q), dfn=dfn, dfd=dfd))

exponential_pdf(x, scale=1.0)

Exponential density with mean scale.

Source code in src/cds2/distributions.py
138
139
140
def exponential_pdf(x: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Exponential density with mean ``scale``."""
    return _wrap(sps.expon.pdf(_as_array(x), scale=scale))

exponential_cdf(x, scale=1.0)

Exponential cumulative distribution function.

Source code in src/cds2/distributions.py
143
144
145
def exponential_cdf(x: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Exponential cumulative distribution function."""
    return _wrap(sps.expon.cdf(_as_array(x), scale=scale))

exponential_ppf(q, scale=1.0)

Exponential quantile function.

Source code in src/cds2/distributions.py
148
149
150
def exponential_ppf(q: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Exponential quantile function."""
    return _wrap(sps.expon.ppf(_as_array(q), scale=scale))

uniform_pdf(x, loc=0.0, scale=1.0)

Continuous uniform density on [loc, loc + scale].

Source code in src/cds2/distributions.py
154
155
156
def uniform_pdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Continuous uniform density on [loc, loc + scale]."""
    return _wrap(sps.uniform.pdf(_as_array(x), loc=loc, scale=scale))

uniform_cdf(x, loc=0.0, scale=1.0)

Uniform cumulative distribution function.

Source code in src/cds2/distributions.py
159
160
161
def uniform_cdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Uniform cumulative distribution function."""
    return _wrap(sps.uniform.cdf(_as_array(x), loc=loc, scale=scale))

uniform_ppf(q, loc=0.0, scale=1.0)

Uniform quantile function.

Source code in src/cds2/distributions.py
164
165
166
def uniform_ppf(q: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Uniform quantile function."""
    return _wrap(sps.uniform.ppf(_as_array(q), loc=loc, scale=scale))

lognormal_pdf(x, sigma=1.0, scale=1.0)

Lognormal density of exp(N(0, sigma^2)) scaled by scale.

Source code in src/cds2/distributions.py
170
171
172
def lognormal_pdf(x: object, sigma: float = 1.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Lognormal density of exp(N(0, sigma^2)) scaled by ``scale``."""
    return _wrap(sps.lognorm.pdf(_as_array(x), s=sigma, scale=scale))

lognormal_cdf(x, sigma=1.0, scale=1.0)

Lognormal cumulative distribution function.

Source code in src/cds2/distributions.py
175
176
177
def lognormal_cdf(x: object, sigma: float = 1.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Lognormal cumulative distribution function."""
    return _wrap(sps.lognorm.cdf(_as_array(x), s=sigma, scale=scale))

lognormal_ppf(q, sigma=1.0, scale=1.0)

Lognormal quantile function.

Source code in src/cds2/distributions.py
180
181
182
def lognormal_ppf(q: object, sigma: float = 1.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Lognormal quantile function."""
    return _wrap(sps.lognorm.ppf(_as_array(q), s=sigma, scale=scale))

poisson_pmf(k, mu)

Poisson probability mass at integer counts k.

Source code in src/cds2/distributions.py
186
187
188
def poisson_pmf(k: object, mu: float) -> NDArray[np.float64]:
    """Poisson probability mass at integer counts ``k``."""
    return _wrap(sps.poisson.pmf(np.atleast_1d(np.asarray(k)), mu))

poisson_cdf(k, mu)

Poisson cumulative mass up to k.

Source code in src/cds2/distributions.py
191
192
193
def poisson_cdf(k: object, mu: float) -> NDArray[np.float64]:
    """Poisson cumulative mass up to ``k``."""
    return _wrap(sps.poisson.cdf(np.atleast_1d(np.asarray(k)), mu))

poisson_ppf(q, mu)

Poisson quantile (smallest count with CDF >= q).

Source code in src/cds2/distributions.py
196
197
198
def poisson_ppf(q: object, mu: float) -> NDArray[np.float64]:
    """Poisson quantile (smallest count with CDF >= q)."""
    return _wrap(sps.poisson.ppf(_as_array(q), mu))

binomial_pmf(k, n, p)

Binomial probability mass for n trials with success odds p.

Source code in src/cds2/distributions.py
202
203
204
def binomial_pmf(k: object, n: int, p: float) -> NDArray[np.float64]:
    """Binomial probability mass for ``n`` trials with success odds ``p``."""
    return _wrap(sps.binom.pmf(np.atleast_1d(np.asarray(k)), n, p))

binomial_cdf(k, n, p)

Binomial cumulative mass up to k.

Source code in src/cds2/distributions.py
207
208
209
def binomial_cdf(k: object, n: int, p: float) -> NDArray[np.float64]:
    """Binomial cumulative mass up to ``k``."""
    return _wrap(sps.binom.cdf(np.atleast_1d(np.asarray(k)), n, p))

binomial_ppf(q, n, p)

Binomial quantile function.

Source code in src/cds2/distributions.py
212
213
214
def binomial_ppf(q: object, n: int, p: float) -> NDArray[np.float64]:
    """Binomial quantile function."""
    return _wrap(sps.binom.ppf(_as_array(q), n, p))

gamma_pdf(x, a, scale=1.0)

Gamma density with shape a and scale.

Source code in src/cds2/distributions.py
218
219
220
def gamma_pdf(x: object, a: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Gamma density with shape ``a`` and ``scale``."""
    return _wrap(sps.gamma.pdf(_as_array(x), a=a, scale=scale))

gamma_cdf(x, a, scale=1.0)

Gamma cumulative distribution function.

Source code in src/cds2/distributions.py
223
224
225
def gamma_cdf(x: object, a: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Gamma cumulative distribution function."""
    return _wrap(sps.gamma.cdf(_as_array(x), a=a, scale=scale))

gamma_ppf(q, a, scale=1.0)

Gamma quantile function.

Source code in src/cds2/distributions.py
228
229
230
def gamma_ppf(q: object, a: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Gamma quantile function."""
    return _wrap(sps.gamma.ppf(_as_array(q), a=a, scale=scale))

beta_pdf(x, a, b)

Beta density on [0, 1] with shape parameters a, b.

Source code in src/cds2/distributions.py
234
235
236
def beta_pdf(x: object, a: float, b: float) -> NDArray[np.float64]:
    """Beta density on [0, 1] with shape parameters ``a``, ``b``."""
    return _wrap(sps.beta.pdf(_as_array(x), a=a, b=b))

beta_cdf(x, a, b)

Beta cumulative distribution function.

Source code in src/cds2/distributions.py
239
240
241
def beta_cdf(x: object, a: float, b: float) -> NDArray[np.float64]:
    """Beta cumulative distribution function."""
    return _wrap(sps.beta.cdf(_as_array(x), a=a, b=b))

beta_ppf(q, a, b)

Beta quantile function.

Source code in src/cds2/distributions.py
244
245
246
def beta_ppf(q: object, a: float, b: float) -> NDArray[np.float64]:
    """Beta quantile function."""
    return _wrap(sps.beta.ppf(_as_array(q), a=a, b=b))

weibull_pdf(x, c, scale=1.0)

Weibull density with shape c.

Source code in src/cds2/distributions.py
250
251
252
def weibull_pdf(x: object, c: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Weibull density with shape ``c``."""
    return _wrap(sps.weibull_min.pdf(_as_array(x), c=c, scale=scale))

weibull_cdf(x, c, scale=1.0)

Weibull cumulative distribution function.

Source code in src/cds2/distributions.py
255
256
257
def weibull_cdf(x: object, c: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Weibull cumulative distribution function."""
    return _wrap(sps.weibull_min.cdf(_as_array(x), c=c, scale=scale))

weibull_ppf(q, c, scale=1.0)

Weibull quantile function.

Source code in src/cds2/distributions.py
260
261
262
def weibull_ppf(q: object, c: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Weibull quantile function."""
    return _wrap(sps.weibull_min.ppf(_as_array(q), c=c, scale=scale))

cauchy_pdf(x, loc=0.0, scale=1.0)

Cauchy density - heavy-tailed, no finite moments.

Source code in src/cds2/distributions.py
266
267
268
def cauchy_pdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Cauchy density - heavy-tailed, no finite moments."""
    return _wrap(sps.cauchy.pdf(_as_array(x), loc=loc, scale=scale))

cauchy_cdf(x, loc=0.0, scale=1.0)

Cauchy cumulative distribution function.

Source code in src/cds2/distributions.py
271
272
273
def cauchy_cdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Cauchy cumulative distribution function."""
    return _wrap(sps.cauchy.cdf(_as_array(x), loc=loc, scale=scale))

cauchy_ppf(q, loc=0.0, scale=1.0)

Cauchy quantile function.

Source code in src/cds2/distributions.py
276
277
278
def cauchy_ppf(q: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Cauchy quantile function."""
    return _wrap(sps.cauchy.ppf(_as_array(q), loc=loc, scale=scale))

laplace_pdf(x, loc=0.0, scale=1.0)

Laplace (double exponential) density.

Source code in src/cds2/distributions.py
282
283
284
def laplace_pdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Laplace (double exponential) density."""
    return _wrap(sps.laplace.pdf(_as_array(x), loc=loc, scale=scale))

laplace_cdf(x, loc=0.0, scale=1.0)

Laplace cumulative distribution function.

Source code in src/cds2/distributions.py
287
288
289
def laplace_cdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Laplace cumulative distribution function."""
    return _wrap(sps.laplace.cdf(_as_array(x), loc=loc, scale=scale))

laplace_ppf(q, loc=0.0, scale=1.0)

Laplace quantile function.

Source code in src/cds2/distributions.py
292
293
294
def laplace_ppf(q: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Laplace quantile function."""
    return _wrap(sps.laplace.ppf(_as_array(q), loc=loc, scale=scale))

gumbel_pdf(x, loc=0.0, scale=1.0)

Gumbel extreme-value density for maxima.

Source code in src/cds2/distributions.py
298
299
300
def gumbel_pdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Gumbel extreme-value density for maxima."""
    return _wrap(sps.gumbel_r.pdf(_as_array(x), loc=loc, scale=scale))

gumbel_cdf(x, loc=0.0, scale=1.0)

Gumbel cumulative distribution function.

Source code in src/cds2/distributions.py
303
304
305
def gumbel_cdf(x: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Gumbel cumulative distribution function."""
    return _wrap(sps.gumbel_r.cdf(_as_array(x), loc=loc, scale=scale))

gumbel_ppf(q, loc=0.0, scale=1.0)

Gumbel quantile function.

Source code in src/cds2/distributions.py
308
309
310
def gumbel_ppf(q: object, loc: float = 0.0, scale: float = 1.0) -> NDArray[np.float64]:
    """Gumbel quantile function."""
    return _wrap(sps.gumbel_r.ppf(_as_array(q), loc=loc, scale=scale))

pareto_pdf(x, b, scale=1.0)

Pareto power-law density with tail index b.

Source code in src/cds2/distributions.py
314
315
316
def pareto_pdf(x: object, b: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Pareto power-law density with tail index ``b``."""
    return _wrap(sps.pareto.pdf(_as_array(x), b=b, scale=scale))

pareto_cdf(x, b, scale=1.0)

Pareto cumulative distribution function.

Source code in src/cds2/distributions.py
319
320
321
def pareto_cdf(x: object, b: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Pareto cumulative distribution function."""
    return _wrap(sps.pareto.cdf(_as_array(x), b=b, scale=scale))

pareto_ppf(q, b, scale=1.0)

Pareto quantile function.

Source code in src/cds2/distributions.py
324
325
326
def pareto_ppf(q: object, b: float, scale: float = 1.0) -> NDArray[np.float64]:
    """Pareto quantile function."""
    return _wrap(sps.pareto.ppf(_as_array(q), b=b, scale=scale))

rayleigh_pdf(x, scale=1.0)

Rayleigh density - magnitude of 2-D Gaussian noise.

Source code in src/cds2/distributions.py
330
331
332
def rayleigh_pdf(x: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Rayleigh density - magnitude of 2-D Gaussian noise."""
    return _wrap(sps.rayleigh.pdf(_as_array(x), scale=scale))

rayleigh_cdf(x, scale=1.0)

Rayleigh cumulative distribution function.

Source code in src/cds2/distributions.py
335
336
337
def rayleigh_cdf(x: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Rayleigh cumulative distribution function."""
    return _wrap(sps.rayleigh.cdf(_as_array(x), scale=scale))

rayleigh_ppf(q, scale=1.0)

Rayleigh quantile function.

Source code in src/cds2/distributions.py
340
341
342
def rayleigh_ppf(q: object, scale: float = 1.0) -> NDArray[np.float64]:
    """Rayleigh quantile function."""
    return _wrap(sps.rayleigh.ppf(_as_array(q), scale=scale))

geometric_pmf(k, p)

Geometric mass - trials until first success.

Source code in src/cds2/distributions.py
346
347
348
def geometric_pmf(k: object, p: float) -> NDArray[np.float64]:
    """Geometric mass - trials until first success."""
    return _wrap(sps.geom.pmf(np.atleast_1d(np.asarray(k)), p))

geometric_cdf(k, p)

Geometric cumulative mass.

Source code in src/cds2/distributions.py
351
352
353
def geometric_cdf(k: object, p: float) -> NDArray[np.float64]:
    """Geometric cumulative mass."""
    return _wrap(sps.geom.cdf(np.atleast_1d(np.asarray(k)), p))

geometric_ppf(q, p)

Geometric quantile function.

Source code in src/cds2/distributions.py
356
357
358
def geometric_ppf(q: object, p: float) -> NDArray[np.float64]:
    """Geometric quantile function."""
    return _wrap(sps.geom.ppf(_as_array(q), p))

negative_binomial_pmf(k, n_failures, p)

Negative-binomial mass - successes before n_failures failures.

Source code in src/cds2/distributions.py
362
363
364
def negative_binomial_pmf(k: object, n_failures: float, p: float) -> NDArray[np.float64]:
    """Negative-binomial mass - successes before ``n_failures`` failures."""
    return _wrap(sps.nbinom.pmf(np.atleast_1d(np.asarray(k)), n_failures, p))

negative_binomial_cdf(k, n_failures, p)

Negative-binomial cumulative mass.

Source code in src/cds2/distributions.py
367
368
369
def negative_binomial_cdf(k: object, n_failures: float, p: float) -> NDArray[np.float64]:
    """Negative-binomial cumulative mass."""
    return _wrap(sps.nbinom.cdf(np.atleast_1d(np.asarray(k)), n_failures, p))

negative_binomial_ppf(q, n_failures, p)

Negative-binomial quantile function.

Source code in src/cds2/distributions.py
372
373
374
def negative_binomial_ppf(q: object, n_failures: float, p: float) -> NDArray[np.float64]:
    """Negative-binomial quantile function."""
    return _wrap(sps.nbinom.ppf(_as_array(q), n_failures, p))

hypergeometric_pmf(k, ngood, nbad, nsample)

Hypergeometric mass - draws without replacement.

Source code in src/cds2/distributions.py
378
379
380
381
def hypergeometric_pmf(k: object, ngood: int, nbad: int, nsample: int) -> NDArray[np.float64]:
    """Hypergeometric mass - draws without replacement."""
    population = ngood + nbad
    return _wrap(sps.hypergeom.pmf(np.atleast_1d(np.asarray(k)), population, ngood, nsample))

hypergeometric_cdf(k, ngood, nbad, nsample)

Hypergeometric cumulative mass.

Source code in src/cds2/distributions.py
384
385
386
387
def hypergeometric_cdf(k: object, ngood: int, nbad: int, nsample: int) -> NDArray[np.float64]:
    """Hypergeometric cumulative mass."""
    population = ngood + nbad
    return _wrap(sps.hypergeom.cdf(np.atleast_1d(np.asarray(k)), population, ngood, nsample))