NKC*_*KCP 33 python random uniform
在python中随机模块,random.uniform()和之间有什么区别random.random()?它们都生成伪随机数,random.uniform()从均匀分布生成数字并random.random()生成下一个随机数.有什么不同?
Mar*_*ers 45
random.random()给出一个范围内的随机浮点数[0.0, 1.0)(包括0.0但不包括1.0哪个也称为半开放范围).random.uniform(a, b)为您提供该范围内的随机浮点数[a, b](其中舍入可能最终会给您b).
直接使用的实现random.uniform()random.random():
def uniform(self, a, b):
"Get a random number in the range [a, b) or [a, b] depending on rounding."
return a + (b-a) * self.random()
Run Code Online (Sandbox Code Playgroud)
random.uniform(0, 1)基本上是同样的事情random.random()(如1.0次浮点值最接近1.0仍然会给你浮点值最接近1.0没有一个舍入误差的存在的可能性).
除了上面提到的之外,.uniform()还可以用于生成多个随机数,这些随机数也具有所需的形状,这是不可能的.random()
np.random.seed(99)
np.random.random()
#generates 0.6722785586307918
Run Code Online (Sandbox Code Playgroud)
而下面的代码
np.random.seed(99)
np.random.uniform(0.0, 1.0, size = (5,2))
#generates this
array([[0.67227856, 0.4880784 ],
[0.82549517, 0.03144639],
[0.80804996, 0.56561742],
[0.2976225 , 0.04669572],
[0.9906274 , 0.00682573]])
Run Code Online (Sandbox Code Playgroud)
这不能用 random(...) 来完成,如果你为 ML 相关的东西生成 random(...) 数字,大多数时候,你最终会使用 .uniform(...)
小智 5
在random.random()中,输出位于0和1之间,并且不包含任何输入参数
而random.uniform()需要参数,您可以在其中提交随机数的范围。例如
import random as ra
print ra.random()
print ra.uniform(5,10)
输出:-
0.672485369423
7.9237539416
| 归档时间: |
|
| 查看次数: |
68475 次 |
| 最近记录: |