Numpy.random.RandomState用法:
Numpy.random.RandStrate()是一个伪随机数生成器(伪随机数是用确定性的算法计算出来的似来自[0,1]均匀分布的随机序列。并不是真正的随机,但是具有类似于随机数的统计特征,如均匀性、独立性等)。
具体用法如下:
import numpy as np
rng = random.RandomState(0)
rng.rand(4)
Out[377]: array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])
rng.rand(4)
Out[377]: array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])
因为是伪随机数,所以必须在rng这个变量下使用,如果不这样做,那么就得不到相同的随机数组了,即便再次输入。
import numpy as np
rng = np.random.RandomState(0)
np.random.rand(4)
Out[398]: array([0.62395295, 0.1156184 , 0.31728548, 0.41482621])
np.random.RandomState(0)
np.random.rand(4)
Out[400]: array([0.86630916, 0.25045537, 0.48303426, 0.98555979])
import numpy as np
rng = np.random.RandState(0)
x = rng.randn(4)
y = rng.randn(4)
x
Out[393]: array([1.76405235, 0.40015721, 0.97873798, 2.2408932 ])
y
Out[394]: array([ 1.86755799, -0.97727788, 0.95008842, -0.15135721])
def rng1():
for i in range(4):
rng = np.random.RandomState(0)
print("i = ",i)
print(rng.rand(3,2))
if __name__ == "__main__":
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.RandState(0)
for i in range(4):
print("i = ",i)
print(rng.rand(3,2))
if __name__ == "__main__":
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]
[0.46147936 0.78052918]]