我想要一个介于0和1之间的随机数,如0.3452.我用过,random.randrange(0, 1)但对我来说总是0.我该怎么办?
jh3*_*314 165
您可以使用 random.uniform
import random
random.uniform(0, 1)
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 58
random.random() 就是这么做的
>>> import random
>>> for i in range(10):
... print(random.random())
...
0.908047338626
0.0199900075962
0.904058545833
0.321508119045
0.657086320195
0.714084413092
0.315924955063
0.696965958019
0.93824013683
0.484207425759
Run Code Online (Sandbox Code Playgroud)
如果你想要真正的随机数,并覆盖范围[0,1]:
>>> import os
>>> int.from_bytes(os.urandom(8), byteorder="big") / ((1 << 64) - 1)
0.7409674234050893
Run Code Online (Sandbox Code Playgroud)
mat*_*dev 12
你可以试试 random.random()
random.randrange(0, 1)返回[0.0,1.0]范围内的下一个随机浮点数.
来自https://docs.python.org/2/library/random.html
您可以使用使用numpy.random模块,您可以根据需要选择形状的随机数数组
>>> import numpy as np
>>> np.random.random(1)[0]
0.17425892129128229
>>> np.random.random((3,2))
array([[ 0.7978787 , 0.9784473 ],
[ 0.49214277, 0.06749958],
[ 0.12944254, 0.80929816]])
>>> np.random.random((3,1))
array([[ 0.86725993],
[ 0.36869585],
[ 0.2601249 ]])
>>> np.random.random((4,1))
array([[ 0.87161403],
[ 0.41976921],
[ 0.35714702],
[ 0.31166808]])
>>> np.random.random_sample()
0.47108547995356098
Run Code Online (Sandbox Code Playgroud)