python函数期望值 python函数csdn

统计学入门级:常见概率分布+python绘制分布图

如果随机变量X的所有取值都可以逐个列举出来,则称X为离散型随机变量。相应的概率分布有二项分布,泊松分布。

创新互联建站从2013年创立,先为夹江等服务建站,夹江等地企业,进行企业商务咨询服务。为夹江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

如果随机变量X的所有取值无法逐个列举出来,而是取数轴上某一区间内的任一点,则称X为连续型随机变量。相应的概率分布有正态分布,均匀分布,指数分布,伽马分布,偏态分布,卡方分布,beta分布等。(真多分布,好恐怖~~)

在离散型随机变量X的一切可能值中,各可能值与其对应概率的乘积之和称为该随机变量X的期望值,记作E(X) 。比如有随机变量,取值依次为:2,2,2,4,5。求其平均值:(2+2+2+4+5)/5 = 3。

期望值也就是该随机变量总体的均值。 推导过程如下:

= (2+2+2+4+5)/5

= 1/5 2 3 + 4/5 + 5/5

= 3/5 2 + 1/5 4 + 1/5 5

= 0.6 2 + 0.2 4 + 0.2 5

= 60% 2 + 20% 4 + 20%*5

= 1.2 + 0.8 + 1

= 3

倒数第三步可以解释为值为2的数字出现的概率为60%,4的概率为20%,5的概率为20%。 所以E(X) = 60% 2 + 20% 4 + 20%*5 = μ = 3。

0-1分布(两点分布),它的随机变量的取值为1或0。即离散型随机变量X的概率分布为:P{X=0} = 1-p, P{X=1} = p,即:

则称随机变量X服从参数为p的0-1分布,记作X~B(1,p)。

在生活中有很多例子服从两点分布,比如投资是否中标,新生婴儿是男孩还是女孩,检查产品是否合格等等。

大家非常熟悉的抛硬币试验对应的分布就是二项分布。抛硬币试验要么出现正面,要么就是反面,只包含这两个结果。出现正面的次数是一个随机变量,这种随机变量所服从的概率分布通常称为 二项分布 。

像抛硬币这类试验所具有的共同性质总结如下:(以抛硬币为例)

通常称具有上述特征的n次重复独立试验为n重伯努利试验。简称伯努利试验或伯努利试验概型。特别地,当试验次数为1时,二项分布服从0-1分布(两点分布)。

举个栗子:抛3次均匀的硬币,求结果出现有2个正面的概率 。

已知p = 0.5 (出现正面的概率) ,n = 3 ,k = 2

所以抛3次均匀的硬币,求结果出现有2个正面的概率为3/8。

二项分布的期望值和方差 分别为:

泊松分布是用来描述在一 指定时间范围内或在指定的面积或体积之内某一事件出现的次数的分布 。生活中服从泊松分布的例子比如有每天房产中介接待的客户数,某微博每月出现服务器瘫痪的次数等等。 泊松分布的公式为 :

其中 λ 为给定的时间间隔内事件的平均数,λ = np。e为一个数学常数,一个无限不循环小数,其值约为2.71828。

泊松分布的期望值和方差 分别为:

使用Python绘制泊松分布的概率分布图:

因为连续型随机变量可以取某一区间或整个实数轴上的任意一个值,所以通常用一个函数f(x)来表示连续型随机变量,而f(x)就称为 概率密度函数 。

概率密度函数f(x)具有如下性质 :

需要注意的是,f(x)不是一个概率,即f(x) ≠ P(X = x) 。在连续分布的情况下,随机变量X在a与b之间的概率可以写成:

正态分布(或高斯分布)是连续型随机变量的最重要也是最常见的分布,比如学生的考试成绩就呈现出正态分布的特征,大部分成绩集中在某个范围(比如60-80分),很小一部分往两端倾斜(比如50分以下和90多分以上)。还有人的身高等等。

正态分布的定义 :

如果随机变量X的概率密度为( -∞x+∞):

则称X服从正态分布,记作X~N(μ,σ²)。其中-∞μ+∞,σ0, μ为随机变量X的均值,σ为随机变量X的标准差。 正态分布的分布函数

正态分布的图形特点 :

使用Python绘制正态分布的概率分布图:

正态分布有一个3σ准则,即数值分布在(μ-σ,μ+σ)中的概率为0.6827,分布在(μ-2σ,μ+2σ)中的概率为0.9545,分布在(μ-3σ,μ+3σ)中的概率为0.9973,也就是说大部分数值是分布在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性很小很小,仅占不到0.3%,属于极个别的小概率事件,所以3σ准则可以用来检测异常值。

当μ=0,σ=1时,有

此时的正态分布N(0,1) 称为标准正态分布。因为μ,σ都是确定的取值,所以其对应的概率密度曲线是一条 形态固定 的曲线。

对标准正态分布,通常用φ(x)表示概率密度函数,用Φ(x)表示分布函数:

假设有一次物理考试特别难,满分100分,全班只有大概20个人及格。与此同时语文考试很简单,全班绝大部分都考了90分以上。小明的物理和语文分别考了60分和80分,他回家后告诉家长,这时家长能仅仅从两科科目的分值直接判断出这次小明的语文成绩要比物理好很多吗?如果不能,应该如何判断呢?此时Z-score就派上用场了。 Z-Score的计算定义 :

即 将随机变量X先减去总体样本均值,再除以总体样本标准差就得到标准分数啦。如果X低于平均值,则Z为负数,反之为正数 。通过计算标准分数,可以将任何一个一般的正态分布转化为标准正态分布。

小明家长从老师那得知物理的全班平均成绩为40分,标准差为10,而语文的平均成绩为92分,标准差为4。分别计算两科成绩的标准分数:

物理:标准分数 = (60-40)/10 = 2

语文:标准分数 = (85-95)/4 = -2.5

从计算结果来看,说明这次考试小明的物理成绩在全部同学中算是考得很不错的,而语文考得很差。

指数分布可能容易和前面的泊松分布混淆,泊松分布强调的是某段时间内随机事件发生的次数的概率分布,而指数分布说的是 随机事件发生的时间间隔 的概率分布。比如一班地铁进站的间隔时间。如果随机变量X的概率密度为:

则称X服从指数分布,其中的参数λ0。 对应的分布函数 为:

均匀分布的期望值和方差 分别为:

使用Python绘制指数分布的概率分布图:

均匀分布有两种,分为 离散型均匀分布和连续型均匀分布 。其中离散型均匀分布最常见的例子就是抛掷骰子啦。抛掷骰子出现的点数就是一个离散型随机变量,点数可能有1,2,3,4,5,6。每个数出现的概率都是1/6。

设连续型随机变量X具有概率密度函数:

则称X服从区间(a,b)上的均匀分布。X在等长度的子区间内取值的概率相同。对应的分布函数为:

f(x)和F(x)的图形分别如下图所示:

均匀分布的期望值和方差 分别为:

用python求离散变量的期望值!

离散型很简单,一个一个列出来就可以了

连续型的话,也不难,看具体的吧

比如两个连续型X、Y

现在条件可以任意给,比如知道X、Y的密度函数,那直接用xy乘以联合密度函数的定积分就可以了。

Python语言:想写一个函数实现如果实际值与期望值不等,则输出实际值与期望值.

先说一下, 期望的英文是expect, 不是respect

然后上代码:

def compare(o, e, n):

if len(o)!=len(e) or len(o)!=len(n):

exit()

diff = []

for i in range(len(o)):

if(o[i]!=e[i]):

diff.append(i)

if diff:

print "%-15s%-15s" %("OutputValue", "ExpectedValue")

for i in diff:

print "%5s= %-10d%5s= %-10d" %(n[i], o[i], n[i], e[i])

average在python中的用法

函数函数是代码的一种组织形式

函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作

有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分

函数的使用函数使用需要先定义

使用函数,俗称调用# 定义一个函数

# 只是定义的话不会执行

# 1. def关键字,后跟一个空格

# 2. 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用

# 3. 后面括号和冒号不能省,括号内可以有参数

# 4. 函数内所有代码缩进

def func():

print("我是一个函数")

print("爱生活")

print("函数结束了")函数结束了# 函数的调用

# 直接写出函数名字,后面小括号不能省略,括号内内容根据情况

func()我是一个函数

爱生活# 函数定义

def func():

print('A')

print('B')func()A

B

函数的参数和返回值参数:负责给函数传递一些必要的数据或者信息形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号

实参(实际参数):在调用函数的时候输入的值

返回值:调用函数的时候的一个执行结果使用return返回结果

如果没有值需要返回,我们推荐使用return None表示函数结束

函数一旦执行return,则函数立即结束

如果函数没有return关键字,则函数默认返回None# 形参和实参的案例

# 参数person只是一个符号

# 调用的时候用另一个

def hello(person):

print("{},你好吗?".format(person))

return None

p = "小明"

# 调用函数,需要把p作为实参传入

hello(p)小明,你好吗?p = "小五"

hello(p)小五,你好吗?pp = hello("小柒")

print(pp)小柒,你好吗?

None# return案例

def hello(person):

print("{0},你好吗?".format(person))

return "提前结束!"

print(1)

p = "小明"

rst = hello(p)

print(rst)小明,你好吗?

提前结束!# help负责随时为你提供帮助

help(None) # 等价于help(peint())Help on built-in function print in module builtins:

print(...)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.

Optional keyword arguments:

file: a file-like object (stream); defaults to the current sys.stdout.

sep: string inserted between values, default a space.

end: string appended after the last value, default a newline.

flush: whether to forcibly flush the stream.# 九九乘法表

# version 1.0

for o in range(1, 10): # 控制外循环 从 1 到 9

for i in range(1, o + 1): # 内循环,每次从第一个数字开始,打印到跟行数相同的数量

print(o * i, end=" ")

print()1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81help(print)Help on built-in function print in module builtins:

print(...)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.

Optional keyword arguments:

file: a file-like object (stream); defaults to the current sys.stdout.

sep: string inserted between values, default a space.

end: string appended after the last value, default a newline.

flush: whether to forcibly flush the stream.# 尝试用函数来打印九九乘法表

def jiujiu():

for o in range(1, 10): # 控制外循环 从 1 到 9

for i in range(1, o + 1): # 内循环,每次从第一个数字开始,打印到跟行数相同的数量

print(o * i, end=" ")

print()

return None

jiujiu()

jiujiu()1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81

1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81# 改造上面函数

def printLine(line_num):

'''

line_num;代表行号

打印一行九九乘法表

'''

for i in range(1, line_num + 1):

print(line_num * i, end=" ")

print()

def jiujiu():

for o in range(1, 10): # 控制外循环 从 1 到 9

printLine(o)

return None

jiujiu()1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81

参数详解python参考资料:headfirst python - 零基础入门学习python(小甲鱼)、流畅的python - 习题

参数分类普通参数/位置参数

默认参数

关键字参数

收集参数

普通参数c参见上例

定义的时候直接定义变量名

调用的时候直接把变量或者值放入指定位置def 函数名(参数1,参数2,.....):

函数体

# 调用

函数名(value1,value2,......)

# 调用的时候,具体值参考的是位置,按位置赋值

默认参数形参带有默认值

调用的时候,如果没有对相应形参赋值,则使用默认值


分享文章:python函数期望值 python函数csdn
本文网址:http://pwwzsj.com/article/doioogd.html