在Python中从数组中生成两个值之间的随机数

在Python中从数组中生成两个值之间的随机数,python,arrays,loops,random,Python,Arrays,Loops,Random,假设我有一个非整数值的单列浮点数组: 数据=[1.1;1.2;1.3;1.4;1.5] 我想在这个数组中的两个连续值之间生成随机数,并将这些值存储在一个新数组中。也就是说,新数组中的第一个值是介于1.1和1.2之间的随机数,下一个值是介于1.2和1.3之间的随机数,依此类推 我希望获得一个新数组,如data_rand=[1.15;1.24;1.37;1.46] 基于原始数据数组 我的问题是(我该如何/最好的方法是什么)迭代数组中的所有值,并在数组中的每个后续数字对之间生成一个非整数随机数,将这些

假设我有一个非整数值的单列浮点数组:

数据=[1.1;1.2;1.3;1.4;1.5]

我想在这个数组中的两个连续值之间生成随机数,并将这些值存储在一个新数组中。也就是说,新数组中的第一个值是介于1.1和1.2之间的随机数,下一个值是介于1.2和1.3之间的随机数,依此类推

我希望获得一个新数组,如data_rand=[1.15;1.24;1.37;1.46] 基于原始数据数组


我的问题是(我该如何/最好的方法是什么)迭代数组中的所有值,并在数组中的每个后续数字对之间生成一个非整数随机数,将这些随机数保存到新数组中?有人能提供一个基于这个小的5值数据数组的例子吗?或者为我指出流程每个阶段的正确方向。

要获得
a
b
之间的随机值,您可以将
0
1
之间的值相加,乘以
a
b
之间的绝对差值,取
a
b
中的较小值

要轻松获取列表中的项目对,可以使用和切片:

>>> l = [1, 2, 3]
>>> zip(l, l[1:])
[(1, 2), (2, 3)]
除此之外,我建议你自己试一试

import random    
rand_data = map(random.uniform, data[:-1], data[1:])
random.uniform(a,b)
提供介于
a
b
之间的随机浮点数。可以将此函数映射到列表的两个部分(第一个部分删除最后一个元素,第二个部分删除第一个元素)。因此,在您的示例中,这两个部分将如下所示:
[1.1,1.2,1.3,1.4]
[1.2,1.3,1.4,1.5]

import random

results = []
l = [1.1, 1.2, 1.3, 1.4, 1.5]

for x in zip(l, l[1:]):
  x = list(int(y * 100) for y in x)
  results.append(float(random.randrange(x[0], x[1])) / 100)
这里我乘/除100,因为我想要2个小数,用10表示1个小数

输出:

结果

[1.14, 1.22, 1.37, 1.44]

那不是Python——你是说一个
列表,比如
[1.1,1.2,1.3]
?到目前为止,您尝试了什么,它到底有什么问题?