create_py_random_state#

create_py_random_state(random_state=None)[source]#

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

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

  • 如果是 random.Random 实例,则返回它。

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

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

  • 如果是 PythonRandomViaNumpyBits 实例,则返回它。

  • 如果是 PythonRandomInterface 实例,则返回它。

  • 如果是 np.random.RandomState 实例且不是全局 numpy 默认值,则返回它,包装在 PythonRandomInterface 中,以便与旧代码进行向后比特流匹配。

Notes

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

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

  • numpy.random 数生成器的包装器允许它们模仿 Python 随机数生成算法。例如,Python 可以创建任意大的随机整数,而包装器使用 Numpy 比特流与 CPython 的 random 模块来选择任意大的随机整数。

  • 我们提供两个包装器类: PythonRandomViaNumpyBits 通常是您想要的,并且总是用于 np.Generator 实例。但对于需要重新创建在 NetworkX 3.2 或更早版本中生成的随机数的用户,我们保留了 PythonRandomInterface 包装器。我们仅在传递了从种子预初始化的(非默认) np.RandomState 实例时使用它。否则使用较新的包装器。