我有一个大型 Python 代码,自 2014 年以来一直在维护/更新/扩展。最近遇到了numpy
的 Random Number Generator Policy (2018-05) 现在我有点困惑。
我不确定发生了什么变化,是否应该相应地升级我的代码以使用新的 Random Generator .例如,Random sampling文档说:
# Do this
from numpy.random import default_rng
rng = default_rng()
vals = rng.standard_normal(10)
more_vals = rng.standard_normal(10)
# instead of this
from numpy import random
vals = random.standard_normal(10)
more_vals = random.standard_normal(10)
我所有的代码都依赖于第二个块中显示的(旧的?)语法(即,我不使用
default_rng
而是简单地调用 np.random.seed()
、 np.random.uniform()
、 np.random.normal()
等),我不使用不知道为什么我应该使用第一个块而不是第二个块。有人可以对此有所了解吗?
最佳答案
1.在python2(旧代码)中,default_rng 不可用。
2.在python3(新代码)中,您提到的第一个和第二个块都将无错误地运行并执行。
3.将来他们可能会从即将推出的python版本中删除random.standard_normal,这就是为什么他们提到使用default_rng而不是random.standard_normal
关于python - 我应该使用 numpy 的随机生成器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62089265/