python - 使 numpy 随机抽取保持一致以实现可重复性

标签 python numpy random

我希望能够修复由 numpy 生成的(伪)随机数序列,以提高我的研究的可重复性。我们通常可以通过修复随机种子来实现此结果,我在 Python 中使用 np.random.seed 来修复该值,也是如此。然而,在两个 Python session 之间,我看到相同随机种子的不同结果。请在下面找到两个 session 的输出。

Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.random.seed = 198908
>>> np.random.uniform(low=0.0, high=1.0, size=10)
array([ 0.43203804,  0.89881118,  0.02976592,  0.93286634,  0.21568609,
        0.44705267,  0.27159611,  0.4000281 ,  0.33873711,  0.54835523])
>>> exit()

Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.random.seed = 198908
>>> np.random.uniform(low=0.0, high=1.0, size=10)
array([ 0.20178185,  0.22492203,  0.51029445,  0.4776532 ,  0.49109006,
        0.22807983,  0.86419725,  0.53422946,  0.08904607,  0.83125896])
>>> exit()

我在这里遗漏了什么吗?另外,任何人都可以建议一种在不同机器上生成一致的随机抽取的方法(假设安装了相同的软件版本)?

最佳答案

np.random.seed 是一个函数。替换:

np.random.seed = 198908

与:

np.random.seed(198908)

详细信息

提供给 seed 的参数可以是 (1) 任何整数或 (2) 任意长度的整数数组(或其他序列),或 (3) 无。如果是None ,然后numpy将从最佳可用随机源中选择一个种子,在 Linux 上为 /dev/urandom .

关于python - 使 numpy 随机抽取保持一致以实现可重复性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309911/

相关文章:

ios - Swift 4 - 测验应用程序随机问题

python - 用条件替换数组中的值

python - 如何将图表轴转换为标准形式

python - 在 python/numpy 中随机放置给定数字的矩阵

postgresql - 在 PostgreSQL 中采样

python - 稀疏矩阵乘法的theano梯度

emacs 中的 Python 高亮显示

python - 在 for 循环中将 String 类型转换为 Int

python - 如何使用列表值作为范围?

python - SSL 证书无效和/或丢失