[英]random.seed() does not work with random.choice()
所以我正在嘗試生成具有所需概率的數字列表; 問題是random.seed()
在這種情況下不起作用。
M_NumDependent = []
for i in range(61729):
random.seed(2020)
n = np.random.choice(np.arange(0, 4), p=[0.44, 0.21, 0.23, 0.12])
M_NumDependent.append(n)
print(M_NumDependent)
如果random.seed()
工作,所需的 output 應該是相同的,但 output 每次運行時都不同。 有誰知道是否有 function 為random.choice()
做類似的seed()
工作?
numpy
使用自己的偽隨機發生器。 您可以使用np.random.seed(..)
[numpy-doc]為 Numpy 隨機生成器播種:
np.random.seed(2020)
例如:
>>> np.random.seed(2020)
>>> np.random.choice(np.arange(0, 4), p=[0.44, 0.21, 0.23, 0.12])
3
>>> np.random.seed(2020)
>>> np.random.choice(np.arange(0, 4), p=[0.44, 0.21, 0.23, 0.12])
3
>>> np.random.seed(2020)
>>> np.random.choice(np.arange(0, 4), p=[0.44, 0.21, 0.23, 0.12])
3
>>> np.random.choice(np.arange(0, 4), p=[0.44, 0.21, 0.23, 0.12])
2
如您所見,我們每次都選擇3
而如果我們不為隨機生成器播種,則2
是3
之后的下一個項目。
您不小心設置了random.random.seed()
而不是numpy.random.seed()
。
代替
random.seed(2020)
利用
import numpy as np
np.random.seed(2020)
並且您的結果將始終是可重復的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.