使用Numpy生成范围内的随机数

2024-04-20 05:53:58 发布

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

我有ranges,其中每个元组表示一个随机数的范围。e、 g:

ranges = [(-1,100), (0,1), (50, 5000)]

现在,我想创建一个numpy数组,其中数组的每个元素都是从ranges的对应元组随机生成的

伪代码:

rand_array = numpy.array[randomly generate element1 from (-1,100), randomly generate element2 from (0,1), randomly generate element3 from (50,500)]

当然,天真的做法是:

rand_array = [random.uniform(coord[0], coord[1]) for coord in ranges]

但我想用numpy的方式来做,因为我的整个代码都接受numpy数组数据类型。另一种解决方案是将原始生成的rand_array转换为numpy数组。但我认为这是没有效率的。有没有一种简单的方法


Tags: 代码fromnumpy元素数组randomlyarraygenerate
1条回答
网友
1楼 · 发布于 2024-04-20 05:53:58

大多数随机函数都接受数组参数。所以你可以

np.random.uniform(*np.transpose(ranges))

例如,通常的广播规则适用于获得10个三胞胎

np.random.uniform(*np.transpose(ranges),(10,3))

相关问题 更多 >