scipy.stats.Uniform.
sample#
- Uniform.sample(shape=(), *, method=None, rng=None)[源代码]#
从分布中随机采样。
- 参数:
- shape整数元组,默认值:()
要绘制的样本的形状。如果随机变量的基础分布的参数是形状为
param_shape
的数组,则输出数组的形状将为shape + param_shape
。- method{None, 'formula', 'inverse_transform'}
用于生成样本的策略。默认情况下 (
None
),基础结构将从以下选项中选择,按优先级顺序列出。'formula'
: 特定于分布的实现'inverse_transform'
: 生成均匀分布的样本,并返回这些参数下的逆 CDF。
并非所有分布都提供所有 method 选项。如果选择的 method 不可用,则会引发 NotImplementedError`。
- rng
numpy.random.Generator
或 scipy.stats.QMCEngine,可选 伪随机或拟随机数生成器状态。当 rng 为 None 时,将使用来自操作系统的熵创建一个新的
numpy.random.Generator
。 除了numpy.random.Generator
和 scipy.stats.QMCEngine 之外的类型将传递给numpy.random.default_rng
以实例化一个Generator
。如果 rng 是配置为使用加扰的 scipy.stats.QMCEngine 的实例,并且 shape 不为空,则结果的第零轴上的每个切片都是一个“准独立”的低差异序列;也就是说,它们是不同的序列,可以在大多数实际目的中被视为统计独立的序列。对
sample
的单独调用会生成新的准独立、低差异序列。
参考文献
[1]抽样(统计学),维基百科,https://en.wikipedia.org/wiki/Sampling_(statistics)
示例
使用所需的参数实例化一个分布
>>> import numpy as np >>> from scipy import stats >>> X = stats.Uniform(a=0., b=1.)
生成伪随机样本
>>> 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)