python计算概率分布,Python数据分析集训 cda
假设你知道数据的分布,也就是数据的pdf,scipy在计算cdf时支持离散数据导入numpy作为np。
导入脚本
将matplotlib.pyplot作为plt导入
将seaborn作为sns导入
x=NP . random . randn(10000)generatesamplesfromnormaldistribution(离散数据))).
norm _ CDF=scipy . stats . norm . CDF(x)#计算cdf -也是离散的
#绘制cdf
SNS.lineplot(x=x,y=norm_cdf))))).
plt.show())
还可以打印cdf的前几个值,以表明它们是离散打印的(norm_CDF[:10])。
数组(0.39216484、0.09554546、0.71268696、0.50066、0.50053606
0.37920836、0.86010018、0.9191937、0.46374527、0.4576634]
类似的cdf计算方法也适用于多维度。下面用二维数据来说明mu=NP。零(2) #平均向量。
cov=NP.array ([ 1,0.6,[ 0.6,1 ] ) #协方差矩阵
# generate 2d normally distributed samples使用0 means和ecovariancematrixabove
x=NP . random . multivarial _ normal(mean=mu,cov=cov,size=1000 ) # 1000个样本
norm _ CDF=scipy . stats . norm . CDF(x(
Print (norm _ CDF.shape))。
(1000,2 ) )。
在上面的例子中,我事先知道我的数据是正态分布的。这就是为什么使用scipy.stats.norm())的原因——scipy支持多种发行版。但是,要使用这些函数,您必须事先知道数据是如何分布的。如果不知道数据是如何分布的,用什么分布来计算cdf,很可能会产生不准确的结果。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。