sample#
- Uniform.sample(shape=(), *, method=None, rng=None)[source]#
- Random sample from the distribution. - Parameters:
- shapetuple of ints, default: ()
- The shape of the sample to draw. If the parameters of the distribution underlying the random variable are arrays of shape - param_shape, the output array will be of shape- shape + param_shape.
- method{None, ‘formula’, ‘inverse_transform’}
- The strategy used to produce the sample. By default ( - None), the infrastructure chooses between the following options, listed in order of precedence.- 'formula': an implementation specific to the distribution
- 'inverse_transform': generate a uniformly distributed sample and return the inverse CDF at these arguments.
 - Not all method options are available for all distributions. If the selected method is not available, a NotImplementedError` will be raised. 
- rngnumpy.random.Generatoror scipy.stats.QMCEngine, optional
- Pseudo- or quasi-random number generator state. When rng is None, a new - numpy.random.Generatoris created using entropy from the operating system. Types other than- numpy.random.Generatorand scipy.stats.QMCEngine are passed to- numpy.random.default_rngto instantiate a- Generator.- If rng is an instance of scipy.stats.QMCEngine configured to use scrambling and shape is not empty, then each slice along the zeroth axis of the result is a “quasi-independent”, low-discrepancy sequence; that is, they are distinct sequences that can be treated as statistically independent for most practical purposes. Separate calls to - sampleproduce new quasi-independent, low-discrepancy sequences.
 
 - References [1]- Sampling (statistics), Wikipedia, https://en.wikipedia.org/wiki/Sampling_(statistics) - Examples - Instantiate a distribution with the desired parameters: - >>> import numpy as np >>> from scipy import stats >>> X = stats.Uniform(a=0., b=1.) - Generate a pseudorandom sample: - >>> x = X.sample((1000, 1)) >>> octiles = (np.arange(8) + 1) / 8 >>> np.count_nonzero(x <= octiles, axis=0) array([ 148, 263, 387, 516, 636, 751, 865, 1000]) # may vary - >>> X = stats.Uniform(a=np.zeros((3, 1)), b=np.ones(2)) >>> X.a.shape, (3, 2) >>> x = X.sample(shape=(5, 4)) >>> x.shape (5, 4, 3, 2)