nessai.utils.sampling
Utilities related to drawing samples.
Module Contents
Functions
|
Compute the radius that contains a fraction of the total probability in an n-dimensional unit Gaussian. |
|
Draw N points uniformly from n-1 sphere of radius r using Marsaglia's |
|
Draw N points uniformly within an n-sphere of radius r |
|
Draw from a uniform distribution on [0, 1]. |
|
Wrapper for numpy.random.randn that deals with extra input parameters |
|
Draw N points from a truncated gaussian with a given a radius |
- nessai.utils.sampling.compute_radius(n, q=0.95)
Compute the radius that contains a fraction of the total probability in an n-dimensional unit Gaussian.
Uses the inverse CDF of a chi-distribution with n degrees of freedom.
- Parameters
- nint
Number of dimensions
- qfloat
Fraction of the total probability
- Returns
- float
Radius
- nessai.utils.sampling.draw_surface_nsphere(dims, r=1, N=1000)
Draw N points uniformly from n-1 sphere of radius r using Marsaglia’s algorithm. E.g for 3 dimensions returns points on a ‘regular’ sphere.
See Marsaglia (1972)
- Parameters
- dimsint
Dimension of the n-sphere
- rfloat, optional
Radius of the n-sphere, if specified it is used to rescale the samples
- Nint, optional
Number of samples to draw
- Returns
- ndarray
Array of samples with shape (N, dims)
- nessai.utils.sampling.draw_nsphere(dims, r=1, N=1000, fuzz=1.0)
Draw N points uniformly within an n-sphere of radius r
- Parameters
- dimsint
Dimension of the n-sphere
- rfloat, optional
Radius of the n-ball
- Nint, optional
Number of samples to draw
- fuzzfloat, optional
Fuzz factor by which to increase the radius of the n-ball
- Returns
- ndarray
Array of samples with shape (N, dims)
- nessai.utils.sampling.draw_uniform(dims, r=(1,), N=1000, fuzz=1.0)
Draw from a uniform distribution on [0, 1].
Deals with extra input parameters used by other draw functions
- Parameters
- dimsint
Dimension of the n-sphere
- rfloat, optional
Radius of the n-ball. (Ignored by this function)
- Nint, ignored
Number of samples to draw
- fuzzfloat, ignored
Fuzz factor by which to increase the radius of the n-ball. (Ignored by this function)
- Returns
- ndarraay
Array of samples with shape (N, dims)
- nessai.utils.sampling.draw_gaussian(dims, r=1, N=1000, fuzz=1.0)
Wrapper for numpy.random.randn that deals with extra input parameters r and fuzz
- Parameters
- dimsint
Dimension of the n-sphere
- rfloat, optional
Radius of the n-ball
- Nint, ignored
Number of samples to draw
- fuzzfloat, ignored
Fuzz factor by which to increase the radius of the n-ball
- Returns
- ndarray
Array of samples with shape (N, dims)
- nessai.utils.sampling.draw_truncated_gaussian(dims, r, N=1000, fuzz=1.0, var=1)
Draw N points from a truncated gaussian with a given a radius
- Parameters
- dimsint
Dimension of the n-sphere
- rfloat
Radius of the truncated Gaussian
- Nint, ignored
Number of samples to draw
- fuzzfloat, ignored
Fuzz factor by which to increase the radius of the truncated Gaussian
- Returns
- ndarray
Array of samples with shape (N, dims)