2015-05-25 112 views
0

我碰到這條線的代碼來:參數1234 numpy.random.RandomState

numpy_rng = numpy.random.RandomState(1234)

我見過the documentationnumpy.random.RandomState是那種庫,其中一個可以找到許多的概率分佈。但我不明白1234的論點。有人請解釋一下嗎?

+2

這是僞隨機數生成器的[seed](https://en.wikipedia.org/wiki/Random_seed)。基本上,如果你給它相同的種子,它總是會產生相同的「隨機」序列(實際上是僞隨機數)。 – Frxstrem

回答

1

聲明:

r = numpy.random.RandomState(1234) 

創建Mersenne Twister隨機數生成器,並將其綁定到該名河Mersenne Twister是用於生成適用於大規模科學模擬的僞隨機數的非常有用的算法。

您傳遞給numpy.random.RandomState的參數是生成器的種子,它指定了一系列僞隨機數的起點。如果你用同樣的東西播種兩個不同的發生器,你將得到相同的結果序列。 uniform()方法返回0到1之間的僞隨機數。注意:

>>> import numpy.random 
>>> r = numpy.random.RandomState(1234) 
>>> r.uniform() 
0.1915194503788923 
>>> r.uniform() 
0.6221087710398319 

>>> r2 = numpy.random.RandomState(1235) 
>>> r2.uniform() 
0.9537625822517408 
>>> r2.uniform() 
0.9921264707372405 

>>> r3 = numpy.random.RandomState(1234) 
>>> r3.uniform() 
0.1915194503788923 
>>> r3.uniform() 
0.6221087710398319 

保存您用於構建RandomState對象將讓你重新運行一個仿真與後來的僞隨機數的同一序列的種子值。

0

RandomState是一個僞隨機數發生器,這意味着它不能生成真正的隨機數,但只能看到隨機數。要做到這一點,你需要給它一些初始的「種子」,它可以用來生成數字。

你指的參數是種子;它最好對每個函數調用都是唯一的,因爲如果它被兩次調用相同的種子,它將生成完全相同的數字序列。

相關問題