首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在一个范围内生成随机的浮点数组

在一个范围内生成随机的浮点数组
EN

Stack Overflow用户
提问于 2014-02-27 22:50:23
回答 7查看 195.5K关注 0票数 120

我还没能找到一个函数来生成一个在某个范围内给定长度的随机浮点数组。

我看过Random sampling,但似乎没有一个函数能满足我的需求。

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

这就是我想要的:

代码语言:javascript
复制
ran_floats = some_function(low=0.5, high=13.3, size=50)

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

有这样的函数吗?

EN

回答 7

Stack Overflow用户

发布于 2014-02-27 22:57:06

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

在Python 2中

代码语言:javascript
复制
ran_floats = [random.uniform(low,high) for _ in xrange(size)]

在Python3中,range的工作方式类似于xrange(ref)

代码语言:javascript
复制
ran_floats = [random.uniform(low,high) for _ in range(size)]
票数 25
EN

Stack Overflow用户

发布于 2018-08-19 09:48:28

或者,您可以使用SciPy

代码语言:javascript
复制
from scipy import stats
stats.uniform(0.5, 13.3).rvs(50)

对于采样整数的记录,它是

代码语言:javascript
复制
stats.randint(10, 20).rvs(50)
票数 4
EN

Stack Overflow用户

发布于 2014-02-27 22:58:24

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

代码语言:javascript
复制
>>> 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]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22071987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档