我正在使用 numpy.random.randn
和 numpy.random.rand
生成随机数。我对 random.randn
和 random.rand
之间的区别感到困惑?
最佳答案
docs
中提到了两者之间的主要区别。链接到 Doc rand和 Doc 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 == 0
和 variance = = 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/