我有中位数和标准差,我想要的是在中位数和中位数+标准之间生成随机数。
我知道如何这样做:
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]
答案 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)