数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像

2023-11-05

1.均匀分布

1.1标准均匀分布(0-1)

import numpy as np
#满足0-1均匀分布 X~U(a,b)  a=0,b=1
s1=np.random.rand(1000)
print(s1)
#期望 E(X)=(a+b)/2=(0+1)/2=0.5
print(s1.mean())
#方差 D(X)=(b-a)²/12=1/12
print(s1.var())

代码运行结果:
0.49659926508513635
0.08177007077913671

在这里插入图片描述

1.2均匀分布(a=1,b=4)

import numpy as np
#满足1-4均匀分布 X~U(a,b)  a=1,b=4
s2=np.random.uniform(1,4,1000)
print(s2)
#期望 E(X)=(a+b)/2=(1+4)/2=0.5
print(s2.mean())
#方差 D(X)=(b-a)²/12=3/4
print(s2.var())

#绘制直方图
#hist(第一个参数:数据,  2:分成多少组)
plt.hist(s2,50)
#x轴:分成的小区间  y轴:在小区间中分别包含多少个数
plt.show()

代码运行结果:
2.4636368580531967
0.7618935545895295

在这里插入图片描述

2.正态分布

2.1标准正态分布(μ=0,σ=1)

import numpy as np
#满足标准正态分布 X~N(μ,σ²) μ=0,σ=1
s3=np.random.randn(1000)
print(s3)
#期望 E(X)=μ=0
print(s3.mean())
#方差 D(X)=σ²=1
print(s3.var())
#绘制直方图
#hist(第一个参数:数据,  2:分成多少组)
plt.hist(s3,50)
#x轴:分成的小区间  y轴:在小区间中分别包含多少个数
plt.show()
代码运行结果:
0.010533220131881613
1.0355896447670396

在这里插入图片描述

2.2正态分布(μ=6,σ=4)

import numpy as np
#满足标准正态分布 X~N(μ,σ²) μ=6,σ=4
s4=np.random.normal(6,4,1000)
print(s4)
#期望 E(X)=μ=0
print(s4.mean())
#方差 D(X)=σ²=16
print(s4.var())
#绘制直方图
#hist(第一个参数:数据,  2:分成多少组)
plt.hist(s4,50)
#x轴:分成的小区间  y轴:在小区间中分别包含多少个数
plt.show()
代码运行结果:
5.925563519203148
15.380646647328417

在这里插入图片描述

3. 自定义均匀分布

import numpy as np
import matplotlib.pyplot as plt
def uniform(x,a,b):
    ls=[]
    for i in x:
        if a<=i<=b:
            y=1/(b-a)
            ls.append(y)
        else:
            ls.append(0)
    return ls
    
def uniform(x,a,b):
    y = [1 / (b - a) if a <= i and i <= b else 0 for i in x]
    return y

绘制一个a,b不同取值的情况

#绘制a和b等于一个值的情况
x=np.linspace(-10,10,100) #使用numpy生成 -10-10 之间100个点
a=3   # a设置为3
b=5   # b设置为5
y=uniform(x,a,b)  #调用函数,计算 y对应的值
plt.plot(x,y)     #绘制均匀分布的概率密度函数图像
plt.show()

用for循环实现绘制多个a,b不同取值的图像

# a,b=(-8,0)、(-3,3)、(2,7)
# 用for循环实现绘制多个a,b不同取值的图像
x=np.linspace(-10,10,100) #使用numpy生成 -10-10 之间100个点
ls=[(-8,0),(-3,3),(2,7)]
for k in ls:
      a,b=k[0],k[1]
      y=uniform(x,a,b)  #调用上面uniform函数,计算y对应的值
      plt.plot(x,y,label='a={},b={}'.format(a,b))
      plt.legend()
plt.show()

在这里插入图片描述

4. 自定义正态分布

import numpy as np
import matplotlib.pyplot as plt
def normal(x):
    miu = x.mean()  # 期望
    sigma = x.std()  # 标准差
    a=(x-miu)**2/(2*sigma**2)
    y=1/(sigma*(2*np.pi)**0.5)*np.exp(-a)
    return y,miu,sigma

if __name__ == '__main__':
    x=np.linspace(4,7,1000)
    y,miu,sigma=normal(x) #调用函数,计算 y对应的值
    plt.plot(x,y,label=r'$\mu={:.2f},\sigma={:.2f}$'.format(miu,sigma))
    plt.legend()
    plt.show()

在这里插入图片描述

5. 自定义指数分布

import numpy as np
import matplotlib.pyplot as plt

def zhishu(x,r):
    y = r * np.exp(-r * x)
    return y

if __name__ == '__main__':
    x=np.linspace(0,10,1000) #使用numpy生成 0-5之间100个点
    r=6             # λ设置为3
    y=zhishu(x,r)  #调用函数,计算y对应的值
    plt.plot(x,y)  #绘制指数分布的概率密度函数图像
    plt.show()

在这里插入图片描述

6. 自定义二项分布

def bioxiang(n,p):
    la=[]
    for k in range(n+1):
        y=sp.comb(n,k)*p**k*(1-p)**(n-k)
        la.append(y)
    return la

def bioxiang(n,p):
	y=[sp.comb(n,k)*p**k*(1-p)**(n-k) for k in range(n+1)]
    return y
    
if __name__ == '__main__':
    n = 10
    p = 0.6
    # x=np.arange(n+1) #使用numpy生成 0,1...10  11个点
    x=[i for i in range(n+1)]
    y=bioxiang(n,p) #调用函数,计算 y对应的值
    plt.scatter(x,y,marker='o') #绘制分布律函数图像
    plt.savefig('b.jpeg')
    plt.show()

在这里插入图片描述

7. 自定义泊松分布

import numpy as np
import scipy.special as sp
import matplotlib.pyplot as plt

def possion(n,rua):
    ls=[]
    for k in range(n+1):
        y=rua**k/(sp.factorial(k))*np.exp(-rua)
        ls.append(y)
    return ls
    
def possion(n,rua):
    ls=[rua**k/(sp.factorial(k))*np.exp(-rua) for k in range(n+1)]
    return ls
    
if __name__ == '__main__':
    n=11
    rua=5
    x=np.arange(n+1)#使用numpy生成 0,1...20  21个点
    y=possion(n,rua)#调用函数,计算 y对应的值
    plt.scatter(x,y,marker='o')#绘制分布律函数图像
    plt.show()

在这里插入图片描述

8. 自定义两点分布

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats

def binpoint(p):
    a=0
    b=1
    y={a:p,b:1-p}
    return [y[a],y[b]]

p=0.3
x=np.array([0,1])
y=binpoint(p)
plt.scatter(x,y)
plt.show()

在这里插入图片描述

9. 卡方分布

在这里插入图片描述在这里插入图片描述

from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0, 10, 100)
df=4
y=stats.chi2.pdf(x, df)
plt.plot(x, y)
plt.xlim(0, 10)
plt.ylim(0, 0.4)

在这里插入图片描述

from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0, 10, 100)
ls=[2,4,7,9]
linestyle=[':', '--', '-.', '-']
for df,lines in zip(ls,linestyle):
	y=stats.chi2.pdf(x, df)
	plt.plot(x, y,linestyle=lines,label=r'df={}'.format(2,4,7,9))
plt.xlim(0, 10)
plt.ylim(0, 0.4)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Chi-Square Distribution')
plt.legend(loc='upper right')
plt.show()

在这里插入图片描述

10. beta分布

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats


x = np.arange(0.01, 1, 0.01)
alpha = 1
beta = 1
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 1
beta = 3
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 1
beta = 5
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 1
beta = 7
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))
plt.legend(loc="upper left")
plt.xlabel("Number of success")
plt.ylabel("Probablity of success")
plt.legend(loc='upper')
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats

x = np.arange(0.01, 1, 0.01)
alpha = 0.5
beta = 1
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 1
beta = 1
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 3
beta = 1
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha = 5
beta = 1
y = stats.beta.pdf(x, alpha, beta)
plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))


plt.legend(loc="upper left")
plt.xlabel("Number of success")
plt.ylabel("Probablity of success")
plt.legend(loc='upper')
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
x = np.arange(0.01, 1, 0.01)
alpha = [0.5,1,4,7]
beta = 1
for alpha in alpha:
    x = np.arange(0.01, 1, 0.01)
    y = stats.beta.pdf(x, alpha, beta)
    plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))

alpha=1
beta=[0.5,1,1.5,5]
for beta in beta:
    y = stats.beta.pdf(x, alpha, beta)
    plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))
plt.legend(loc="upper left")
plt.xlabel("Number of success")
plt.ylabel("Probablity of success")
# plt.legend(loc='upper')
plt.show()

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像 的相关文章

随机推荐

  • IT项目管理个人作业8

    练习题1 质量标准 要求 学历 全日制统招研究生及以上学历 专业 计算机科学 软件工程 工程管理或相关专业者优先 经验 三年 三年以上相关工作经验 年龄 30 45 论文发表 在顶级期刊上发表过三篇以上论文 技术需求 熟悉项目管理相关知识
  • 13、Efficient Geometry-aware 3D Generative Adversarial Networks

    简介 仅使用单视图 2D 照片集合无监督生成高质量的多视图一致图像和 3D 形状一直是一项长期存在的挑战 现有的3D GAN要么是计算密集型的 要么是进行不3D一致的近似 前者限制了生成图像的质量和分辨率 后者会对多视图一致性和形状质量产生
  • input框限制只能输入两位小数

    1 给数字输入框输入定义触发事件
  • 解决Mysql使用本地IP无法连接

    Mysql使用本地IP无法连接 使用localhost或127 0 0 1正常连接 问题原因 Mysql默认不会开启本地IP连接的权限 需要手动开启 解决方法 1 进入cmd 2 输入mysql u root p 密码 进入mysql 3
  • JS-----------Ajax

    目录 传统网站存在的问题 ajax概述 阿贾克斯 异步和同步的区别 Ajax运行原理 ajax的实现步骤 请求报文 Ajax的其他方法和Ajax配置信息 请求传参的几种格式 get post区别 同源政策 扩展 思维导图 传统网站存在的问题
  • Python列表操作指南:索引、切片、遍历与综合应用

    文章目录 列表 简介 创建列表 索引和切片 列表的长度 列表的拼接和重复 检查元素是否存在 列表的方法 index 方法 count 方法 列表的修改和删除 修改元素 删除元素 列表的排序和反转 添加元素 列表的拷贝 列表的遍历 列表的切片
  • Java基础练习题01基本控制流程

    1 输入一个字符 判断它是不是字母 是不是数字 是不是空格字符 public static void main String args System out print 请输入一个字符 Scanner input new Scanner S
  • 西门子S7-1200与V20变频器的USS通信

    USS通信基本原理 USS 协议 Universal Serial Interface Protocol 即通用串行接口协议 是西门子专为驱动装置开发的通用通信协议 它是一种基于串行总线进行数据通信的协议 USS 通信总是由主站发起 USS
  • NFT 项目的十大评估维度

    全文共 5383 字 阅读约需 7 分钟 目录 1 项目的艺术性 2 社区 3 团队 4 路线图 5 使用场景 6 故事性 7 成本度量 8 稀有度 9 流动性 10 趋势 如何判断某一NFT项目是否可冲 这是各大 NFT 社群里都很常见的
  • 软件测试——程序控制流图,McCabe环形复杂度

    软件测试 程序控制流图 McCabe环形复杂度 根据下边的程序流程图 完成 1 画出相应的程序控制流图 根据上述的程序流程图画出程序控制流图 由于一个条件判断语句中有复合条件表达式 故需拆开表示 2 给出控制流图的邻接矩阵 1 2 3 4
  • js中的dataset的使用

    总结 1 document querySelector 的使用 2 data 自定义属性的使用 3 dataset 获取自定义属性值的使用 转载于 https blog 51cto com 11871779 2333045
  • 社区划分的标准--模块度

    在社区发现算法中 几乎不可能先确定社区的数目 于是 必须有一种度量的方法 可以在计算的过程中衡量每一个结果是不是相对最佳的结果 模块度 Modularity 用来衡量一个社区的划分是不是相对比较好的结果 一个相对好的结果在社区内部的节点相似
  • 语言基础篇11——函数、函数参数类型、装饰器、生成器

    函数 基本结构 def func name value print f Hello value return 0 func name World 函数参数 参数默认值和五种参数类型 https docs python org 3 gloss
  • Linux之间NFS挂载,及遇到的问题

    环境 Linux1 192 168 84 139 Linux2 192 168 84 138 目的 将Linux1文件下的 opt share分享给Linux2 步骤 1 两台机器上都安装rpcbind nfs yum install y
  • c++内存安全问题

    写一个好的C 程序 我们要懂得好多东西 比如说最基本的面向对象编程思想 C 的封装 继承 多态机制 设计模式等 还有一个很重要的内容便是性能优化 像C C 这种接近底层的语言 追求的就是性能 与之相关的一项内容便是内存管理 内存分配要合理
  • 如何在Java中将STL转换为PDF或PNG图像?试试这个

    STL文件用于显示3D曲面的几何形状 但是 只有少数与CAD相关的应用程序支持查看或使用STL文件 因此 您可能需要将STL文件转换为PDF或PNG图像 因为它广泛支持PDF或图像文件格式 所以它使您可以在许多操作系统和环境中概述文件 让我
  • ES6之 Module

    ES6之 Module ES6 的 Class 只是面向对象编程的语法糖 升级了 ES5 的构造函数的原型链继承的写法 并没有解决模块化问题 Module 功能就是为了解决这个问题而提出的 JavaScript 一直没有模块 module
  • 如何完美卸载ubuntu系统的解决方法

    由于我本人之前安装ubuntus双系统没把ubuntus卸载干净导致一堆问题 以下给出解决方案 网上的方法差点把我的分区表给删了 问题一 为什么你用硬盘分出来的未使用空间 linux系统读不到你这个空间呢 解决方法 因为之前我装双系统的时候
  • Python 实现MD5加密算法对文件加密 返回加密MD5值

    Python 实现MD5加密算法对文件加密 返回加密MD5值 1 本文知识点 使用Python 实现MD5加密算法对文件内容的加密 返回加密MD5值 可用于文件传输前和接收时的校验文件内容是否丢失 文件传输前将文件内容加密为MD5值 将MD
  • 数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像

    1 均匀分布 1 1标准均匀分布 0 1 import numpy as np 满足0 1均匀分布 X U a b a 0 b 1 s1 np random rand 1000 print s1 期望 E X a b 2 0 1 2 0 5