如何在numpy中设置固定的随机种子?

Pou*_*del 4 python numpy

我相信设置种子总是会产生相同的结果。但是我每次都得到不同的结果。如何设置种子以便我们每次得到相同的结果?

这是 MWE:

import numpy as np
import pandas as pd


random_state = 100
np.random.state = random_state
np.random.seed = random_state

mu, sigma = 0, 0.25
eps = np.random.normal(mu,sigma,size=100)
print(eps[0])
Run Code Online (Sandbox Code Playgroud)

我每次都得到不同的结果。

更新:

我不能使用 np.random.seed(xxx)

orl*_*rlp 9

np.random.seed是一个函数,您需要调用它,而不是分配给它。例如:

np.random.seed(42)
Run Code Online (Sandbox Code Playgroud)


Fei*_*Yao 6

np.random.seed是全局设置随机状态的函数。作为替代方案,您还可以使用np.random.RandomState(x)实例化随机状态类以在本地获得可再现性。根据您的代码改编,我提供了一个替代选项,如下所示。

import numpy as np
random_state = 100
rng=np.random.RandomState(random_state )
mu, sigma = 0, 0.25
eps = rng.normal(mu,sigma,size=100) # Difference here
print(eps[0])
Run Code Online (Sandbox Code Playgroud)

有关详细信息np.random.seed,并np.random.RandomState可以发现在这里