1. 程式人生 > 其它 >numpy.random.RandomState的使用

numpy.random.RandomState的使用

import numpy as np
numpy.random.RandomState是一個偽隨機數生成器,主要用來生成一組偽隨機數。偽隨機數是用確定性的演算法計算出來的似來自[0,1]均勻分佈的隨機數序列。並不真正的隨機,但具有類似於隨機數的統計特徵,如均勻性、獨立性等

import numpy as np
rng=np.random.RandomState(123)
a=rng.randn(2,3)
a

import numpy as np
rng=np.random.RandomState(0)
b=rng.randn(2,3)
b

rng=np.random.RandomState(123)
c=rng.randn(2,3)
c

d=rng.randn(3,2)
d

因為是偽隨機數,所以必須在rng這個變數下使用,如果不這樣做,那麼就得不到相同的隨機陣列了,即便你再次輸入了numpy.random.RandomState():
下面給出兩個自定義函式來幫助更好地理解:
def rng1():
for i in range(4):
rng = np.random.RandomState(0)
print("i = ",i)
print(rng.rand(3,2))

rng1()
i = 0
[[0.5488135 0.71518937]
[0.60276338 0.54488318]
[0.4236548 0.64589411]]
i = 1
[[0.5488135 0.71518937]
[0.60276338 0.54488318]
[0.4236548 0.64589411]]
i = 2
[[0.5488135 0.71518937]
[0.60276338 0.54488318]
[0.4236548 0.64589411]]
i = 3
[[0.5488135 0.71518937]
[0.60276338 0.54488318]
[0.4236548 0.64589411]]
def rng2():
rng = np.random.RandomState(0)
for i in range(4):
print("i = ",i)
print(rng.rand(3,2))

rng2()
i = 0
[[0.5488135 0.71518937]
[0.60276338 0.54488318]
[0.4236548 0.64589411]]
i = 1
[[0.43758721 0.891773 ]
[0.96366276 0.38344152]
[0.79172504 0.52889492]]
i = 2
[[0.56804456 0.92559664]
[0.07103606 0.0871293 ]
[0.0202184 0.83261985]]
i = 3
[[0.77815675 0.87001215]
[0.97861834 0.79915856]