random.random 与 numPy.random

Ral*_*lph 2 python random numpy

在这里读到以下内容:

“Python stdlib 模块random包含伪随机数生成器,其许多方法与 中可用的方法类似Generator。”

然而,Python 模块“random”的第一个链接的 URL 指向 Numpy 的 random.random 文档,而不是某些通用的 Python 库。

这个链接是错误的还是我只是不明白文档在这里想说的内容?我对 Python 中生成随机数的所有不同选项感到非常困惑。我现在数了一下至少有四个:

  1. numPy 单例 RandomState 对象

  2. numPy RandomState 对象

  3. numPy 生成器对象

  4. Python 的一般随机功能显然是这样的。

任何见解都是非常受欢迎的。

Nic*_*ell 5

这个链接是不是错了?

是的。在上下文中,我认为他们的意思是随机的。有三个证据可以证明这一点。

  1. 它说它在 stdlib 中,而 NumPy 不在 stdlib 中。它是 Python 的一个可选库。

  2. 它谈论的是一个模块,但np.random.random()不是一个模块——它是模块内的一个函数。

  3. 后来,在同一段中,它说:

    Python stdlib 模块 random 包含伪随机数生成器,其许多方法与 Generator 中可用的方法类似。它使用 Mersenne Twister,并且可以使用 MT19937 访问该位生成器。Generator 除了支持 NumPy 之外,还有一个优点是它提供了更多的概率分布可供选择。

    说它np.random.random()不支持 NumPy 是没有意义的——它是 NumPy 的一部分。另一方面,将 stdlib random 模块描述为不支持 NumPy 确实有意义。stdlib random 模块无法创建随机数的 NumPy 数组。即使您没有安装 NumPy,它也可以正常工作。