Python求正态分布曲线下面积实例

yipeiwu_com7年前Python基础

正态分布应用最广泛的连续概率分布,其特征是“钟”形曲线。这种分布的概率密度函数为:

其中,μ为均值,σ为标准差。

求正态分布曲线下面积有3σ原则:

正态曲线下,横轴区间(μ-σ,μ+σ)内的面积为68.268949%,横轴区间(μ-1.96σ,μ+1.96σ)内的面积为95.449974%,横轴区间(μ-2.58σ,μ+2.58σ)内的面积为99.730020%。

求任意区间内曲线下的面积,通常可以引用scipy包中的相关函数

norm函数生成一个给定均值和标准差的正态分布,cdf(x)表示-∞到x的概率

例:(2,1)正态分布下 2-3曲线下的面积

>>> import scipy.stats
>>> scipy.stats.norm(2,1).cdf(3)-0.5
0.34134474606854293

由于有时候不便于引用scipy包,自编这一函数也很简单

求积分函数参考:复化梯形求积分

cdfd(a,b,u,o)

a,b 为区间起始范围,u,o分别为正态分布的均值和标准差。

import math

def pdf(x):
  return math.exp(-(x) ** 2 / (2)) / (math.sqrt(2 * math.pi))

def sum_fun_xk(xk, func):
  return sum([func(each) for each in xk])

def integral(a, b, n, func):
  h = (b - a)/float(n)
  xk = [a + i*h for i in range(1, n)]
  return h/2 * (func(a) + 2 * sum_fun_xk(xk, func) + func(b))

def cdfd(a,b,u,o):
  return integral((a-u)/o,(b-u)/o,10000,pdf)

cdfd(2,3,2,1)

Out: 0.3413399854638336

以上这篇Python求正态分布曲线下面积实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现周期方波信号频谱图

python实现周期方波信号频谱图

在学习傅里叶变换的时候遇到了求周期方波信号频谱图的例子,在书上和网上查阅了一些资料,发现大都是讨论的都是下图左边的周期信号的频谱,课程老师的PPT中也只列出了另一种周期信号频谱图的结论,...

pyenv与virtualenv安装实现python多版本多项目管理

pyenv与virtualenv安装实现python多版本多项目管理

踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位。 pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应...

python 借助numpy保存数据为csv格式的实现方法

借助numpy可以把数组或者矩阵保存为csv文件,也可以吧csv文件整体读取为一个数组或矩阵。 1.csv ==> matrix import numpy my_matrix...

python中的列表与元组的使用

在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。 通俗来说,它就是用来存储一系列数据的。比如存储一个班级的学生。 列表中的每个元素可以通过下标(索引)...

tensorflow1.0学习之模型的保存与恢复(Saver)

将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情。tf里面提供模型保存的是tf.train.Saver()模块。 模型保存,先要创建一个Saver对象:如...