create_py_random_state#

create_py_random_state(random_state=None)[source]#

根据输入返回一个 random.Random 实例。

参数:
random_stateint 或 随机数生成器 或 None (默认值=None)
  • 如果为 int,返回一个以 int 为种子设置的 random.Random 实例。

  • 如果为 random.Random 实例,则返回该实例。

  • 如果为 None 或 np.random 包,返回 np.random 使用的全局随机数生成器。

  • 如果为 np.random.Generator 实例,或 np.random 包,或全局 numpy 随机数生成器,则返回封装在 PythonRandomViaNumpyBits 类中的该实例。

  • 如果为 PythonRandomViaNumpyBits 实例,则返回该实例。

  • 如果为 PythonRandomInterface 实例,则返回该实例。

  • 如果为 np.random.RandomState 实例且不是全局 numpy 默认实例,则将其封装在 PythonRandomInterface 中返回,以实现与旧代码的向后兼容位流匹配。

注意

  • 一个旨在说明我们对 numpy 随机数支持背后关系的图表称为 NetworkX Numpy Random Numbers

  • 关于此支持的更多讨论也出现在 gh-6869#comment 中。

  • numpy.random 随机数生成器的封装器使其能够模拟 Python 随机数生成算法。例如,Python 可以创建任意大的随机整数,而封装器使用 Numpy 位流与 CPython 的 random 模块一起选择任意大的随机整数。

  • 我们提供两个封装器类:PythonRandomViaNumpyBits 通常是您想要的,并且始终用于 np.Generator 实例。但对于需要重现 NetworkX 3.2 或更早版本生成的随机数的用户,我们也维护 PythonRandomInterface 封装器。仅当传入一个(非默认的)从种子预初始化的 np.RandomState 实例时使用它。否则使用新的封装器。