2014-12-13 111 views
0

上面的工作基本上是:numpy的隨機不帶種子

np.random.randn(10) 

但我無法弄清楚如何設置種子?

+0

你爲什麼要設置種子?特別是對一個隨機數? – abarnert 2014-12-13 04:04:12

回答

5

我不知道爲什麼你要設置種子,尤其是對一個隨機數,更尤其是隨機浮動(注意:random.seed想要一個大的整數)。

但是,如果你這樣做,很簡單:調用numpy.random.seed函數。

請注意,NumPy的種子是32位整數的數組,而Python的種子是單個任意大小的整數(儘管查看文檔以瞭解當您傳遞其他類型時會發生什麼)。

所以,例如:

In [341]: np.random.seed(0)  
In [342]: s = np.random.randn(10) 
In [343]: s 
Out[343]: 
array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, 
     -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ]) 
In [344]: np.random.seed(0) 
In [345]: s 
Out[345]: 
array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, 
     -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ]) 

兩次使用相同的種子(I了通過單一int,這NumPy的將在內部轉換成的1 int32數組的快捷方式),產生相同的隨機數。

+0

您在這裏只分配一次's',因此's'將始終保持不變,而與第二次設置種子無關。 – Darkonaut 2018-01-04 19:42:26