numpy - numpy中的随机数生成器

标签 numpy ipython

我正在使用 numpy.random.randnnumpy.random.rand 生成随机数。我对 random.randnrandom.rand 之间的区别感到困惑?

最佳答案

docs 中提到了两者之间的主要区别。链接到 Doc randDoc randn

对于 numpy.rand,您可以获得从 0 - 1 内的均匀分布生成的随机值/p>

但对于 numpy.randn,您会得到从正态分布生成的随机值,均值为 0,方差为 1。

只是一个小例子。

>>> import numpy as np
>>> np.random.rand(10)
array([ 0.63067838,  0.61371053,  0.62025104,  0.42751699,  0.22862483,
        0.75287427,  0.90339087,  0.06643259,  0.17352284,  0.58213108])
>>> np.random.randn(10)
array([ 0.19972981, -0.35193746, -0.62164336,  2.22596365,  0.88984545,
       -0.28463902,  1.00123501,  1.76429108, -2.5511792 ,  0.09671888])
>>> 

如您所见,rand 为我提供了 0-1 内的值,

randn 给我的值是 mean == 0variance = = 1

为了进一步解释,让我生成一个足够大的样本:

>>> a = np.random.rand(100)
>>> b = np.random.randn(100)
>>> np.mean(a)
0.50570149531258946
>>> np.mean(b)
-0.010864958465191673
>>>

你可以看到 a 的均值接近 0.50,这是使用 rand。另一方面,b 的平均值接近 0.0,这是使用 randn

关于numpy - numpy中的随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806133/