在范围之间生成浮动的随机数组

2024-04-25 12:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我还没有找到一个函数来生成给定长度的随机浮点数数组。

我看了Random sampling但是似乎没有函数可以满足我的需要。

random.uniform很接近,但它只返回单个元素,而不是特定的数字。

这就是我想要的:

ran_floats = some_function(low=0.5, high=13.3, size=50)

它将返回一个由50个随机的非唯一浮点数组成的数组(即:允许重复),这些浮点数均匀分布在[0.5, 13.3]范围内。

有这样的功能吗?


Tags: 函数元素function数字randomuniformsome数组
3条回答

为什么不使用列表理解呢?

ran_floats = [random.uniform(low,high) for _ in xrange(size)]

np.random.uniform适合您的用例: http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html

sampl = np.random.uniform(low=0.5, high=13.3, size=(50,))

2019年10月更新:

尽管语法仍然受支持,但看起来该api已使用numpy 1.17进行了更改,以支持对随机数生成器的更大控制。在此更改之前,文档如下: https://docs.scipy.org/doc/numpy-1.16.0/reference/generated/numpy.random.uniform.html

接下来,API已经改变了,您应该看看:

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.Generator.uniform.html

增强建议如下:

https://numpy.org/neps/nep-0019-rng-policy.html

为什么不把random.uniform和列表理解结合起来呢?

>>> def random_floats(low, high, size):
...    return [random.uniform(low, high) for _ in xrange(size)]
... 
>>> random_floats(0.5, 2.8, 5)
[2.366910411506704, 1.878800401620107, 1.0145196974227986, 2.332600336488709, 1.945869474662082]

相关问题 更多 >