【问题标题】:The difference between np.random.seed(int) and np.random.seed(array_like)?np.random.seed(int) 和 np.random.seed(array_like) 的区别?
【发布时间】:2016-05-07 07:15:30
【问题描述】:

在 Python 的 numpy 库中,np.random.seed 方法可以接受两种不同类型的参数:intarray_like[int]

它们之间有什么区别?如:np.random.seed(2)np.random.seed([2013, 1, 4])

【问题讨论】:

    标签: python numpy random


    【解决方案1】:

    底层Mersenne Twister PRNG 的状态非常大,确切地说是 624 个 32 位整数。如果给定一个整数种子,初始化例程将运行一个较小的 PRNG 以将该单个 32 位整数扩展为完整的 624 元素状态。这确实意味着您无法访问绝大多数可能的状态。

    同样,如果给定一个整数序列作为种子,那么另一个较小的 PRNG 将使用它来扩展为 624 个元素,但它可以使用您传递的整个数组。如果这对您很重要,这使您可以访问整个初始状态空间。该算法在标准库的random 模块和numpy.random 之间共享。

    【讨论】:

    • 那么单整数和array_like参数的唯一区别是初始状态的空间大小?对随机数的产生没有影响?
    • 没错。初始化后的算法一模一样。
    猜你喜欢
    • 2018-05-12
    • 2014-05-24
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2018-07-30
    • 2020-02-10
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多