python中random获取随机数的模块

正态分布,normalvariate(mu,sigma)
mu:均值
sigma:标准差
mu=0,sigma=1为标准正态分布。
除了均匀分布,正态分布用的是最多的。

import random 
import numpy as np
import time
st = time.clock()
N =1000000
n = []
for i in range(N):
    n.append(random.normalvariate(0,1))
print("均值=",np.mean(n))
print("标准差=",np.std(n))
print("耗时=",time.clock() - st)
输出结果:
均值= -7.42643413388e-05
标准差= 1.00049689373
耗时= 5.702438655147374

可以看出,随机生成1000000个数,这些数符合正态分布。

(3)高斯分布,gauss(mu,sigma)
就是正态分布,采用了不同的实现方式,据说运行速度更快。

import random
import numpy as np
import time
st = time.clock()
N =1000000
n = []
for i in range(N):
    n.append(random.gauss(0,1))
print("均值=",np.mean(n))
print("标准差=",np.std(n))
print("耗时=",time.clock() - st)
输出结果
均值= 0.000604319020838
标准差= 0.999634159673
耗时= 4.827287158657131

1000000个数快了不到1秒,也没快太多。

(4)还有生成三角形分布、对数分布、指数分布、β分布、伽马分布等的函数
triangular(low, high, mode)三角形分布
lognormvariate(mu, sigma)对数分布
expovariate(lambd)指数分布
gammavariate(alpha, beta)伽马分布
等等。实际工作中,这些分布比均匀分布和正态分布用的都少的多。

你可能感兴趣的:(python中random获取随机数的模块)