傳統隨機生成#
RandomState
提供對傳統生成器的存取權限。此生成器被視為已凍結,且不會再進行任何改進。保證它產生的值與 NumPy v1.16 的最終發行點版本相同。這些都依賴 Box-Muller 常態分佈或反 CDF 指數或 Gamma 分佈。只有在必須擁有與先前 NumPy 版本產生的隨機數完全相同的隨機數時,才應使用此類別。
RandomState
將額外資訊新增至狀態,使用 Box-Muller 常態分佈時需要這些資訊,因為這些常態分佈是以成對方式產生。使用 RandomState.get_state
(而非底層位元生成器的 state)存取狀態非常重要,以便儲存這些額外值。
雖然我們提供了 MT19937
BitGenerator,以便獨立於 RandomState
使用,但請注意,它的預設種子設定使用 SeedSequence
,而不是傳統種子設定演算法。RandomState
將使用傳統種子設定演算法。使用傳統種子設定演算法的方法目前是私有的,因為使用它們的主要原因只是為了實作 RandomState
。但是,可以使用 RandomState
的狀態重設 MT19937
的狀態
from numpy.random import MT19937
from numpy.random import RandomState
rs = RandomState(12345)
mt19937 = MT19937()
mt19937.state = rs.get_state()
rs2 = RandomState(mt19937)
# Same output
rs.standard_normal()
rs2.standard_normal()
rs.random()
rs2.random()
rs.standard_exponential()
rs2.standard_exponential()
- class numpy.random.RandomState(seed=None)#
慢速 Mersenne Twister 偽隨機數生成器的容器。考慮使用不同的 BitGenerator 和 Generator 容器來代替。
RandomState
和Generator
公開了許多方法,用於產生從各種機率分佈中抽取的隨機數。除了特定於分佈的引數之外,每個方法還接受預設為None
的關鍵字引數 size。如果 size 為None
,則會產生並傳回單一值。如果 size 是整數,則會傳回以產生值填滿的 1 維陣列。如果 size 是元組,則會填滿並傳回具有該形狀的陣列。相容性保證
使用固定種子和固定系列呼叫的固定位元生成器,以相同參數呼叫「RandomState」方法,將始終產生相同的結果,直到捨入誤差為止,除非這些值不正確。
RandomState
實際上已凍結,並且只會接收 Numpy 內部變更所需的更新。更重大的變更(包括演算法改進)保留給Generator
。- 參數:
註解
Python stdlib 模組「random」也包含一個 Mersenne Twister 偽隨機數生成器,其中有許多方法與
RandomState
中可用的方法類似。RandomState
除了感知 NumPy 之外,還具有優勢,它提供了更多的機率分佈可供選擇。
種子設定和狀態#
簡單隨機資料#
|
給定形狀的隨機值。 |
|
從「標準常態」分佈傳回一個樣本(或多個樣本)。 |
|
從 low(包含)到 high(不包含)傳回隨機整數。 |
|
介於 low 和 high 之間(包含)的 |
|
在半開區間 [0.0, 1.0) 中傳回隨機浮點數。 |
|
從給定的 1 維陣列產生隨機樣本 |
|
傳回隨機位元組。 |
排列#
|
就地修改序列,透過洗牌其內容。 |
|
隨機排列序列,或傳回排列後的範圍。 |
分佈#
|
從 Beta 分佈中抽取樣本。 |
|
從二項式分佈中抽取樣本。 |
|
從卡方分佈中抽取樣本。 |
|
從狄利克雷分佈中抽取樣本。 |
|
從指數分佈中抽取樣本。 |
|
從 F 分佈中抽取樣本。 |
|
從 Gamma 分佈中抽取樣本。 |
|
從幾何分佈中抽取樣本。 |
|
從耿貝爾分佈中抽取樣本。 |
|
從超幾何分佈中抽取樣本。 |
|
從具有指定位置(或平均值)和尺度(衰減)的 Laplace 或雙指數分佈中抽取樣本。 |
|
從邏輯分佈中抽取樣本。 |
|
從對數常態分佈中抽取樣本。 |
|
從對數級數分佈中抽取樣本。 |
|
從多項式分佈中抽取樣本。 |
|
從多變量常態分佈中抽取隨機樣本。 |
|
從負二項式分佈中抽取樣本。 |
|
從非中心卡方分佈中抽取樣本。 |
|
從非中心 F 分佈中抽取樣本。 |
|
從常態(高斯)分佈中抽取隨機樣本。 |
|
從具有指定形狀的 Pareto II 或 Lomax 分佈中抽取樣本。 |
|
從 Poisson 分佈中抽取樣本。 |
|
從具有正指數 a - 1 的冪分佈中,在 [0, 1] 中抽取樣本。 |
|
從 Rayleigh 分佈中抽取樣本。 |
|
從模式 = 0 的標準柯西分佈中抽取樣本。 |
|
從標準指數分佈中抽取樣本。 |
|
從標準 Gamma 分佈中抽取樣本。 |
|
從標準常態分佈(平均值=0,標準差=1)中抽取樣本。 |
|
從自由度為 df 的標準學生 t 分佈中抽取樣本。 |
|
從區間 [left, right] 上的三角分佈中抽取樣本。 |
|
從均勻分佈中抽取樣本。 |
|
從 von Mises 分佈中抽取樣本。 |
|
從 Wald 或反高斯分佈中抽取樣本。 |
|
從 Weibull 分佈中抽取樣本。 |
|
從 Zipf 分佈中抽取樣本。 |
numpy.random 中的函數#
上述許多 RandomState 方法都作為 numpy.random
中的函數匯出。不建議使用此用法,因為它是透過全域 RandomState
實例實作的,這在兩個方面都不建議:
它使用全域狀態,這表示結果會隨著程式碼變更而改變
它使用
RandomState
而不是更現代的Generator
。
由於向後相容的傳統原因,我們不會變更此設定。
|
從 Beta 分佈中抽取樣本。 |
|
從二項式分佈中抽取樣本。 |
|
傳回隨機位元組。 |
|
從卡方分佈中抽取樣本。 |
|
從給定的 1 維陣列產生隨機樣本 |
|
從狄利克雷分佈中抽取樣本。 |
|
從指數分佈中抽取樣本。 |
|
從 F 分佈中抽取樣本。 |
|
從 Gamma 分佈中抽取樣本。 |
|
從幾何分佈中抽取樣本。 |
|
傳回代表生成器內部狀態的元組。 |
|
從耿貝爾分佈中抽取樣本。 |
|
從超幾何分佈中抽取樣本。 |
|
從具有指定位置(或平均值)和尺度(衰減)的 Laplace 或雙指數分佈中抽取樣本。 |
|
從邏輯分佈中抽取樣本。 |
|
從對數常態分佈中抽取樣本。 |
|
從對數級數分佈中抽取樣本。 |
|
從多項式分佈中抽取樣本。 |
|
從多變量常態分佈中抽取隨機樣本。 |
|
從負二項式分佈中抽取樣本。 |
|
從非中心卡方分佈中抽取樣本。 |
|
從非中心 F 分佈中抽取樣本。 |
|
從常態(高斯)分佈中抽取隨機樣本。 |
|
從具有指定形狀的 Pareto II 或 Lomax 分佈中抽取樣本。 |
|
隨機排列序列,或傳回排列後的範圍。 |
|
從 Poisson 分佈中抽取樣本。 |
|
從具有正指數 a - 1 的冪分佈中,在 [0, 1] 中抽取樣本。 |
|
給定形狀的隨機值。 |
|
從 low(包含)到 high(不包含)傳回隨機整數。 |
|
從「標準常態」分佈傳回一個樣本(或多個樣本)。 |
|
在半開區間 [0.0, 1.0) 中傳回隨機浮點數。 |
|
介於 low 和 high 之間(包含)的 |
|
在半開區間 [0.0, 1.0) 中傳回隨機浮點數。 |
|
This is an alias of |
|
從 Rayleigh 分佈中抽取樣本。 |
|
This is an alias of |
|
重新設定單例 RandomState 實例的種子。 |
|
從元組設定生成器的內部狀態。 |
|
就地修改序列,透過洗牌其內容。 |
|
從模式 = 0 的標準柯西分佈中抽取樣本。 |
|
從標準指數分佈中抽取樣本。 |
|
從標準 Gamma 分佈中抽取樣本。 |
|
從標準常態分佈(平均值=0,標準差=1)中抽取樣本。 |
|
從自由度為 df 的標準學生 t 分佈中抽取樣本。 |
|
從區間 [left, right] 上的三角分佈中抽取樣本。 |
|
從均勻分佈中抽取樣本。 |
|
從 von Mises 分佈中抽取樣本。 |
|
從 Wald 或反高斯分佈中抽取樣本。 |
|
從 Weibull 分佈中抽取樣本。 |
|
從 Zipf 分佈中抽取樣本。 |