欢迎访问宙启技术站
智能推送

使用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()

运行以上代码,即可生成截断正态分布的随机变量序列,并将其分布可视化展示出来。