Distribution Samplers

Classes for sampling from probability distributions

class ionworkspipeline.data_fits.distribution_samplers.DistributionSampler

Base class for sampling from probability distributions.

classmethod from_schema(schema: Any) DistributionSampler

Construct from a validated ionworks_schema schema instance.

The schema’s DistributionSampler family carries no configuration — pipeline distribution-sampler classes only require distributions at run time, which are supplied by the DataFit runtime once the parameter set is known. To avoid coupling that runtime concern into from_schema, this method bypasses __init__ (via __new__) and returns a bare instance. Calling __call__ / _sample before DataFit has populated _distributions raises a clear ValueError rather than leaking an AttributeError.

class ionworkspipeline.data_fits.distribution_samplers.HypercubeSampler(distributions, seed=None, sampler_kwargs=None)

Base class for sampling from hypercube distributions.

Parameters

distributionslist[Distribution]

List of distributions

seedint, optional

Random seed for reproducibility

sampler_kwargsdict, optional

Additional keyword arguments passed to sampler

Extends: ionworkspipeline.data_fits.distribution_samplers.distribution_samplers.DistributionSampler

class ionworkspipeline.data_fits.distribution_samplers.LatinHypercube(distributions, seed=None, sampler_kwargs=None)

Latin hypercube sampler for quasi-random sampling.

Parameters

distributionslist[Distribution]

List of distributions

seedint, optional

Random seed for reproducibility

sampler_kwargsdict, optional

Additional keyword arguments passed to scipy.stats.qmc.LatinHypercube

Extends: ionworkspipeline.data_fits.distribution_samplers.distribution_samplers.HypercubeSampler

class ionworkspipeline.data_fits.distribution_samplers.Uniform(distributions, seed=None, sampler_kwargs=None)

Uniform random sampler.

Parameters

distributionslist[Distribution]

List of distributions

seedint, optional

Random seed for reproducibility

sampler_kwargsdict, optional

Additional keyword arguments passed to numpy.random.RandomState

Extends: ionworkspipeline.data_fits.distribution_samplers.distribution_samplers.HypercubeSampler

reset()

Reset the random number generator with the original seed