scipy.stats.Normal.
示例#
- Normal.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)