在 python 中为正态分布绘制 pdf 且标准差为 2 时,均值是否仍为零?

when plotting a pdf in python for a normal distribution and the standard deviation is 2, will the mean still be zero?

因此,根据我对正态分布的理解,当标准差为 1 时,默认情况下均值为零。我被分配编写一个 python 程序来生成正态分布函数的 PDF,其中范围从 10 到 45,标准偏差为 2。均值是否仍为零?我试过了,但我的情节没有形成钟形。我不知道我做错了什么。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
mu=0 # mean
sigma=2
x=np.arange(10,45,0.1)
y=stats.norm.pdf(x, 0, sigma)
plt.plot(x,y)
plt.show()

在这里查看我的情节:myplot

此处由于随机变量的范围在 10 到 45 之间,所以均值将位于该值范围之间,大约 27。您需要使用 mean 函数获得相同值,然后使用如下代码:

y=stats.norm.pdf(x, x.mean(), sigma )

这会给你一条正态分布曲线

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10,45,0.1)
sigma = 2
print('Mean :', round(x.mean(), 2),'SD :', sigma)
plt.plot(x, norm.pdf(x,x.mean(),sigma), 'r1', lw=2, alpha=0.5, label='norm PDF')
plt.legend(loc='best')
plt.show()

打印:

Mean : 27.45 SD : 2

并显示概率密度函数的形状: