python正态分布随机数生成的三种方式

python正态分布随机数生成的三种方式

 

方法1:内置库random

使用方式:详见 https://docs.python.org/zh-cn/3/library/random.html

 1 import random
 2 # 返回整数
 3 a=random.randint(min,max)
 4 # 返回指定范围内的小数
 5 a=random.uniform(min,max)
 6 # 返回0-1之间的小数
 7 a=random.seed()
 8 # 返回指定数学期望和标准差的高斯分布随机数
 9 a=random.gauss(miu,sigma)
10 # 从序列seq中有放回采样
11 a=random.choice(seq)
12 # 从序列seq中无放回采样
13 a=random.sample(seq)

优点:快

缺点:每次只能生成一个,生成一组需要加循环。只支持正态分布等八种分布。

 

方法2:numpy函数random

使用方法:https://numpy.org/devdocs/reference/random/index.html?highlight=random#module-numpy.random

1 from numpy.random import default_rng
2 rng = default_rng()
3 vals = rng.standard_normal(100)

优点:较快,更准确,可以同时生成很多,但是需要先定义生成器

 

方法3:scipy统计学函数stats

使用方法:https://docs.scipy.org/doc/scipy/reference/stats.html

1 from scipy import stats
2 a=stats.norm.rvs(miu,sigma,size=500)

优点:支持绝大部分数学分布,不仅可以生成随机数,还可以生成概率密度函数,累计概率密度函数及其对数函数。

缺点:慢

 

 
 

python正态分布随机数生成的三种方式

 

posted @ 2022-02-15 16:57  Philbert  阅读(16108)  评论(0编辑  收藏  举报