我有一個np.random.randint使用np.random.seed(0). 現在我想通過創建一個單獨的 rng 物件來找到如何獲得相同的數字rng = np.random.default_rng(0)。我天真地以為這兩種方式是相同的,但顯然情況并非如此。原因是我試圖從一些使用內置方法的腳本中重現一些錯誤,但不幸的是,現在另一個腳本也影響了內置 RNG 的狀態,這就是我想將這些解耦的原因。
誰能告訴我我必須做什么才能獲得與rng我從np.random內置 RNG 中獲得的相同的數字?
原因
import numpy as np
def builtin(seed=0):
np.random.seed(seed)
print(np.random.randint(0, 10, 5))
def default(seed=0):
rng = np.random.default_rng(seed)
print(rng.integers(0, 10, 5))
# unfortunately do not produce the same results:
builtin()
default()
uj5u.com熱心網友回復:
numpy.random.default_rng使用新型Generator API。這主要優于舊功能,并且應該在新代碼中首選,除非您有特定的理由不使用它,但它與舊 API 不向后兼容。
舊 API 創建新 RNG 物件的方式是numpy.random.RandomState:
rng = np.random.RandomState(0)
print(rng.randint(0, 10, 5))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/528664.html
標籤:Python麻木的随机的
