标准正态分布概率密度函数公式为:
代码:(直方图的参数在代码注释中)
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-4.5,4.5,0.01)
def f(x):
return (np.e)**(-x**2/2)/(2*np.pi)**0.5
samples=np.random.normal(0,1,size=1000000)
#直方图,用来展示samples中数据分布情况,横轴是数据,纵轴是出现的次数(也就是频数)
#bins:指定几条条状图
#normed=True表示进行归一化,即y轴数据全部除以最大值,使数据位于(0,1)之间,默认是False
#histtype='step'只显示直方图最外围一圈,不填默认是histtype='stepfilled'
bins=100
plt.plot(x,f(x),label='f(x)')
plt.hist(samples,bins=bins,density=True,histtype='stepfilled',label='bins=%s'%bins)
plt.legend(loc='upper left')
plt.show()
图形:
样本数:1000 ,bins=100: 样本数:10000,bins=100:
可以看出,样本太少会导致和标准正态分布曲线有差异,样本越大,差异越小
样本数:1000000(一百万),bins=10: 样本数:1000000(一百万),bins=100:
bins是 直方的个数,直方个数太少也不行
欢迎大佬批评指正,提建议,谢谢!!!
更多博客推荐:
基于u-net,cv2以及cnn的中文车牌定位,矫正和端到端识别软件