中位数范围内的随机数

时间:2017-10-04 13:01:57

标签: python numpy random

我有中位数和标准差,我想要的是在中位数和中位数+标准之间生成随机数。

我知道如何这样做:

import numpy as np
import random as rnd

median=30
std=15
random_nr=rnd.randint(median-std,median+std)

我还发现了numpy.random.normal功能,但它似乎没有做我需要的功能。 这样做还有其他办法吗? 如果随机生成器在镜像中生成中间数,那将是很好的,例如,6个生成的随机数的输出应该如下所示:

numbers=magicfunction(median,std,6)
[29,31,20,40,25,35]

1 个答案:

答案 0 :(得分:3)

在这里,如果大小是奇数,那么它将只生成耦合(作为您的请求),然后在数组的末尾生成一个数字。

import numpy as np
import random as rnd

median=30
std=15
def generatearray(median,std,size):
    output=[0]*size    
    for index in range(0,size/2):
        random_nr=rnd.randint(-std,std)
        output[2*index]=median+random_nr
        output[2*index+1]=median-random_nr
    if(size % 2 != 0):
        output[size-1]=rnd.randint(median-std,median+std)
    return output

print generatearray(median,std,6)