欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python验证中心极限定理

程序员文章站 2022-07-10 23:36:06
...

果然Python等各种软件都是任务驱动型的,只要有任务有需求才会有动力去学,以下是本人借Pyhton验证中心极限定理的方法,分享出来共同学校,欢迎指正和交流~
至于结果的话,试试就知道了~


import numpy as np
import matplotlib.pyplot as plt
import math
import seaborn as sns # seaborn是以matplot为基库的升级版

pi=math.pi # 调用圆周率
e=math.e # 调用自然对数
def norm(x): # 定义标准正态分布函数,用于作图
    y=e**(-x*x/2)/((2*pi)**0.5)
    return y

x=np.arange(-4,4,0.1) # 自变量取值范围
y=norm(x)  # y的赋值
plt.plot(x,y,color='b') # 绘制标准正态分布,为蓝色

# np.random.seed(60)  # 可不要 保证每次抽取为同一个样本
pop_data=np.random.exponential(2,10000000)
# 以指数分布生成随机数,2为期望,生成100000个
means_size=[] # 建立空数组以存储数据
# 执行6000次,即总频数为6000
for _ in range(6000): 
    global n
    n=2 # 抽取个数,修改这个参数即可改变抽取个数
    sample=np.random.choice(pop_data,n) #从pop_data中随机抽取n个随机值
    sample=sample.mean()  #算抽取的n个随机值的均值
    sample=n**0.5*(sample-2)/2 # 正态分布 标准化
    means_size.append(sample)   # 添加到数组
means_size=np.array(means_size)   # 转化为一维数组

sns.set_style("darkgrid")
sns.distplot(means_size,color="r") # 画出样本的频率分布,红色为样本
plt.xlabel('Standardized Mean') # y轴和x轴
plt.ylabel('Frequency % Probability')
plt.title("n="+str(n))
plt.grid() # 画图
plt.savefig('中心极限定理 n='+str(n)+".png") # 保存要在展示之前
plt.show() # 展示
相关标签: python