【发布时间】:2021-05-11 13:09:00
【问题描述】:
例如,假设我调用numpy.random.uniform(0, 1, 10) 而不调用任何与种子相关的函数。 NumPy 必须使用一些默认种子,但我在文档中找不到它。未指定种子时,NumPy 如何为其随机数播种?
【问题讨论】:
标签: python numpy random random-seed
例如,假设我调用numpy.random.uniform(0, 1, 10) 而不调用任何与种子相关的函数。 NumPy 必须使用一些默认种子,但我在文档中找不到它。未指定种子时,NumPy 如何为其随机数播种?
【问题讨论】:
标签: python numpy random random-seed
对于 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 的示例)播种。
【讨论】: