【问题标题】:How does NumPy seed its random number generators if no seed is provided?如果没有提供种子,NumPy 如何为其随机数生成器播种?
【发布时间】:2021-05-11 13:09:00
【问题描述】:

例如,假设我调用numpy.random.uniform(0, 1, 10) 而不调用任何与种子相关的函数。 NumPy 必须使用一些默认种子,但我在文档中找不到它。未指定种子时,NumPy 如何为其随机数播种?

【问题讨论】:

    标签: python numpy random random-seed


    【解决方案1】:

    对于 NumPy 的旧版 numpy.random.* 函数,包括 numpy.random.uniform,使用全局 RandomState object initialized with no arguments。因为种子没有传递给这个RandomState,所以“MT19937 BitGenerator 是通过从/dev/urandom(或 Windows 模拟)中读取数据来初始化的,如果可用的话,或者从时钟中读取种子”(https://numpy.org/doc/stable/reference/random/legacy.html#numpy.random.RandomState)。

    同样,NumPy 的较新的 BitGenerator 类,例如 PCG64,默认情况下使用“新鲜的、不可预测的熵......从操作系统中提取”(default_rng 的示例)播种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2017-04-06
      • 1970-01-01
      • 2012-09-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多