创建具有特定平均值的随机数组

Dot*_*tPi 2 python arrays random numpy scipy

我正在使用scipy并希望创建一个具有特定平均值的legnth n数组.

假设我想要一个长度为3且平均值为2.5的随机数组,因此可能的选项可能是:[1.5,3.5,2.5] [.25,7.2,.05]等等......等等......

我需要创建许多具有不同长度和不同平均值(指定)的数组,因此欢迎使用通用解决方案.

Joh*_*ooy 9

只需在您想要的范围内生成数字(在这种情况下为0 ... 10)

>>> import random
>>> nums = [10*random.random() for x in range(5)]
Run Code Online (Sandbox Code Playgroud)

算出平均值

>>> sum(nums)/len(nums)
4.2315222659844824
Run Code Online (Sandbox Code Playgroud)

将平均值移动到您想要的位置

>>> nums = [x - 4.2315222659844824 + 2.5 for x in nums]
>>> nums
[-0.628013346633133, 4.628537956666447, -1.7219257458163257, 7.617565127420011, 2.6038360083629986]
>>> sum(nums)/len(nums)
2.4999999999999996
Run Code Online (Sandbox Code Playgroud)

您可以使用您喜欢的任何分布/范围.通过这种方式改变平均值,它总能得到平均2.5(或非常接近它)