scipy.stats.Normal.
sample#
- 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 是設定為使用 scrambling 的 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)