使用scipy.statstruncnorm()函数在Python中生成截断正态分布的随机变量序列
发布时间:2023-12-26 21:13:53
使用scipy.statstruncnorm()函数可以生成截断正态分布的随机变量序列。scipy.statstruncnorm()函数是scipy库中的统计模块中的一个函数,用于生成截断正态分布。
要使用该函数,首先需要导入相应的库:
import numpy as np import matplotlib.pyplot as plt from scipy.stats import truncnorm
truncnorm()函数的原型为:
truncnorm(a, b, loc=0, scale=1)
其中,a表示截断下限,b表示截断上限,loc表示均值,scale表示标准差。默认情况下,均值为0,标准差为1。
下面以一个例子来说明如何使用scipy.statstruncnorm()函数生成截断正态分布的随机变量序列。
假设我们要生成一个截断正态分布,下限为-1,上限为1,均值为0,标准差为1的随机变量序列。我们可以先设定一些参数:
a = -1 # 截断下限 b = 1 # 截断上限 mu = 0 # 均值 sigma = 1 # 标准差
然后调用truncnorm()函数生成随机变量序列:
rvs = truncnorm.rvs(a, b, loc=mu, scale=sigma, size=1000)
其中,size表示要生成的随机变量的个数。
最后,我们可以将随机变量的分布可视化:
count, bins, ignored = plt.hist(rvs, 30, density=True)
plt.plot(bins, truncnorm.pdf(bins, a, b, loc=mu, scale=sigma),
linewidth=2, color='r')
plt.show()
运行以上代码,即可生成截断正态分布的随机变量序列,并将其分布可视化展示出来。
