【问题标题】:How to set the fixed random seed in numpy?如何在numpy中设置固定的随机种子?
【发布时间】:2026-01-19 12:05:02
【问题描述】:

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

这是 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])

我每次得到不同的结果。

更新:

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

【问题讨论】:

  • np.random.seed(42) - 这是一个函数
  • @SpghttCd,该答案使用 np.random.seed(42),但在我的情况下,该功能不起作用。
  • @update,因为您已经通过将np.random.seed 设置为100 覆盖了它。关闭所有内容并重新开始而不覆盖。或者试试del np.random.seed
  • 哦!我知道了,非常感谢。

标签: python numpy


【解决方案1】:

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

np.random.seed(42)

【讨论】:

    【解决方案2】:

    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])
    

    有关np.random.seednp.random.RandomState 的更多详细信息,请访问here

    【讨论】: