抽样随机浮动在numpy中的范围内

busg9geu  于 2023-10-19  发布在  其他
关注(0)|答案(4)|浏览(83)

如何在numpy中对区间[a,B]上的随机浮点数进行采样?不只是整数,而是任何真实的数字。比如说,
random_float(5, 10)
将返回[5, 10]之间的随机数。谢谢.

ngynwnxp

ngynwnxp1#

uniform distribution可能会做你所要求的。

np.random.uniform(5,10) # A single value
np.random.uniform(5,10,[2,3]) # A 2x3 array
xmd2e60i

xmd2e60i2#

编辑:只使用random.uniform(10, 15)代替
如果没有numpy,你可以用random模块来完成。

import random
random.random()*5 + 10

将返回10-15范围内的数字,作为函数:

>>> import random
>>> def random_float(low, high):
...     return random.random()*(high-low) + low
...
>>> random_float(5,10)
9.3199502283292208
>>> random_float(5,10)
7.8762002129171185
>>> random_float(5,10)
8.0522023132650808

random.random()返回一个从0到1的浮点数(不包括上限)。乘以一个数字会得到更大的范围。ex random.random()*5返回从0到5的数字。给它加上一个数字就提供了一个下限。random.random()*5 +10返回10到15之间的数字。我不知道你为什么想用numpy来完成这个任务,但也许我误解了你的意图。

3wabscal

3wabscal3#

import numpy as np
>>> 5 + np.random.sample(10) * 5
array([ 7.14292096,  6.84837089,  6.38203972,  8.80365208,  9.06627847,
        5.69871186,  6.37734538,  9.60618347,  9.34319843,  8.63550653])
au9on6nz

au9on6nz4#

一般语法:

np.random.uniform(range a, rang b, (rows, columns))

举例来说:np.random.uniform(5,10, (3,6))
这里的值被填充在数组中:(5是包含性的,10是不包含性的)。

相关问题