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)
优点:支持绝大部分数学分布,不仅可以生成随机数,还可以生成概率密度函数,累计概率密度函数及其对数函数。
缺点:慢
本文来自博客园,作者:Philbert,转载请注明原文链接:https://www.cnblogs.com/liangxuran/p/15897306.html