python中最全面的统计分布工具

news2025/2/28 12:49:34

文章目录

    • 正态分布
    • 属性和方法
    • 测试

正态分布

scipy为诸多统计分布函数设计了类,这些类封装了几乎相同的方法,下面先以正态分布为示例,预览一下强大的统计功能。

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

rv = norm()

# 绘制正态分布的概率密度曲线
x = np.linspace(-3, 3, 100)
plt.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

# 生成1000个随机数,并绘制直方图
r = norm.rvs(size=1000)
plt.hist(r, density=True, bins='auto', alpha=0.2)

# 将norm.pdf当作静态方法调用
plt.plot(x, norm.pdf(x),
    'r-', lw=1, alpha=0.6, label='norm pdf')

plt.legend()
plt.xlim(-3,3)
plt.show()

结果如图所示

在这里插入图片描述

其中,norm为正态分布类,rv是正态分布对象,然后调用rv.pdf函数,绘制出rv这个标准正态分布的概率密度函数曲线。

接下来通过rvs函数,创建了1000个随机数,并通过hist函数将其直方图画出,可以看到,这个直方图的分布情况,与概率密度函数所刻画的范围是相对一致的。

最后,直接调用norm的静态方法.pdf,得到了与rv.pdf相同的输出结果。

这就是scipy.stats中封装的概率类的基本使用方法,下面对这些类做一个统一的介绍。

属性和方法

作为概率类,其最重要的功能就是生成随机数,通过调用.rvs方法,可以生成任意维度的随机数,其定义如下

rvs(loc=0, scale=1, size=1, random_state=None)  # 连续型
rvs(p, loc=0, size=1, random_state=None)        # 离散型

其中,locscale用于尺度放缩,size为生成随机数的维度,random_state为随机数种子,指定后便于结果复现。

对于分布函数、概率密度函数等分布的基本特征,这些类除了提供原始函数外,还提供了对数函数,这些函数的输入参数均为(k, a, n, loc=0)

原始函数对数函数说明
pmflogpmf概率质量函数,适用于离散型
pdflogpdf概率密度函数,适用于连续型
cdflogcdf累加分布函数
ppf百分点函数(cdf的反函数)
sflogsf残差函数 (1 - cdf)
isf残差函数的反函数

概率类提供了一些最常用的统计量函数,离散分布的参数均为(a, n, loc=0),连续分布的参数均为(loc=0, scale=1)

中位数均值方差标准差
medianmeanvarstdentropy

另外,还提供了一个统一的函数stats(a, n, loc=0, moments=’mv’),可以一次性输出这些统计量。其moments的标准字符为:Mean(‘m’), variance(‘v’), skew(‘s’) orkurtosis(‘k’)。

通过interval函数,可以求取分布的置信区间,其输入参数如下,confidence为置信水平。

interval(confidence, loc=0, scale=1)    # 连续型
interval(confidence, p, loc=0)          # 离散型

通过expect函数可以计算概率分布的期望,其输入参数为

expect(func, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)  # 连续型
expect(func, args=(p,), loc=0, lb=None, ub=None, conditional=False) # 离散型

其中,func为作用在概率分布之上的函数,lb, ub表示求期望的区间。

测试

下面仍然基于正态分布,对一些函数进行简单的测试

>>> rv.interval(0.5)
(-0.6744897501960817, 0.6744897501960817)
>>> rv.interval(0.5, loc=2)
(1.3255102498039184, 2.6744897501960816)
>>> rv.interval(0.5, scale=2)
(-1.3489795003921634, 1.3489795003921634)

上面代码测试了置信区间函数,第一行表示在(-0.6744897501960817, 0.6744897501960817)区间内发生的概率为 50 % 50\% 50%

在指明loc参数为2后,整个结果向右平移了2;指明scale为2后,概率分布函数被拉平了,从而置信区间也跟着乘以2。

>>> rv.expect()
0.0
>>> rv.expect(lb=-1, ub=2)
0.18797975800595532
>>> rv.expect(lb=-1, ub=3)
0.2375388761072053
>>> rv.expect(lb=-1, ub=4)
0.24183689429337848

上面的代码测试了正态分布的期望函数,当指定计算期望的区间后,其期望值不断发生变化,例如在(-1,2)区间内,其期望为0.18。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K_A38_001 基于STM32等单片机驱动DS1302时钟模块 OLED0.96显示

K_A38_001 基于STM32等单片机驱动DS1302时钟模块 OLED0.96显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RCDS1302时钟模块1.2、STM32F103C8T6DS1302时钟模块 五、基础知识学习与相关资料下载…

Python入门(六)if语句(一)

if语句(一) 1.概述2.一个简单的实例3. 条件测试3.1 检查是否相等3.2 数值比较3.3 检查多个条件3.4 布尔表达式 作者:xiou 1.概述 编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检…

三分钟阿里云服务器u1通用算力型性能、使用限制及费用说明

阿里云服务器u1是通用算力型云服务器,CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器,通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xff0c…

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档 一、引言二、什么是 ChatDOC三、如何使用 ChatDOC3.1 主要功能3.2 表格/文本分析3.3 人工智能对话最后附使用地址:本教程收集于:AIGC从入门到精通教程 一、引言 你是否曾经因为阅读论文而感到困难和无从下手?ChatDOC 是…

分布式 05.redis在springboot中的使用和两个注解@Configuration和@Bean

01.在服务器中配置好redis服务器后&#xff0c;在sts中使用redis插件。 02.先是导入jar包&#xff1a; <!--spring整合redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> &l…

MySQL--复合查询--内外链接--0422

注&#xff1a;为了方便查看 mysql语句会有突然的换行&#xff0c;书写时请勿模仿。 目录 1.单表查询回顾 显示工资最高的员工的名字和工作岗位 显示工资高于平均工资的员工信息 2.多表查询 比如需要查询雇员名字和所在部门编号及部门名字。 显示部门号为10的部门名&…

win10+使用cmake编译最新的ceres-solver库

参考文献 点击这里访问 感谢大佬&#xff01; 说明 我这个只编译了release版本&#xff0c;如果还需要debug版本&#xff0c;cmake编译和vs编译都需要另外设置一些东西&#xff0c;我没有弄。 文章目录 参考文献说明1. 需要使用的库2. 需要的工具3. 准备工作3.1 建一个文件…

Neovim-配置教程

环境&#xff1a;Ubuntu 20.04 宿主机&#xff1a;windows &#xff08;windows terminal&#xff09;WSL2 NVIM&#xff1a;v0.10.0-dev 配置Neovim 需要保证流畅的github环境&#xff08;以便于快速拉取插件&#xff09;&#xff0c;可以使用代理或是配置Github SSH key 本文…

【OpenCV-Python】——Haar人脸检测深度学习人脸检测EigenFaces/FisherFaces/LBPH人脸识别

目录 前言&#xff1a; 1、人脸检测 1.1 基于Haar的人脸检测 1.2 基于深度学习的人脸检测 2、人脸识别 2.1 EigenFaces人脸识别 2.2 FisherFaces人脸识别 2.3 LBPH人脸识别 总结&#xff1a; 前言&#xff1a; 人脸检测是人脸定位的过程&#xff1b;人脸识别是在人脸…

macOS 下载汇总(系统、应用和教程) 2023 持续更新中

macOS Ventura 13, macOS Monterey 12, macOS Big Sur 11, macOS Catalina 10.15, macOS Mojave 10.14, macOS High Sierra 10.13, macOS Sierra 10.12 请访问原文链接&#xff1a;https://sysin.org/blog/macOS/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。…

VMware Aria Suite 8.12 - 云管理解决方案 (下载索引)

VMware Aria Suite 8.12 - 云管理解决方案 (下载索引) 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-aria-suite/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 云管理套包 VMware Aria Suite&#xff08;以前…

网络基础知识(2)——简单说说IP地址

Internet 依靠 TCP/IP 协议&#xff0c;在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的主机之间的互联。在 Internet 上&#xff0c;每一个节点都依靠唯一的 IP 地址相互区分和相互联系&#xff0c;IP 地址用于标识互联网中的每台主机的身份&#xff0c;设计人员…

Windows 20个经典cmd命令,值得收藏

本文重点介绍Windows系统常用工具和服务的快捷启动命令。相比鼠标多次点击打开窗口&#xff0c;输入命令回车一键打开更为快捷高效。喜欢请点赞收藏&#xff0c;关注我获取最新原创分享~ 一、Windows启动命令使用方式 快捷键 【徽标R】打开命令窗口 输入命令&#xff0c;点击【…

ARM 栈帧(一)

ARM 栈帧 本系列均以 corter-A7(armv7-a) 为例 在 ARM 中&#xff0c;通常为满减栈&#xff08;Full Descending FD&#xff09;, 也就是说&#xff0c;堆栈指针指向堆栈内存中最后一个填充的位置&#xff0c;并且随着每个新数据项被压入堆栈而递减。 栈的本质 要理解栈的本…

基于NXP+FPGA的大容量固态存储板实现方案

1 概述 近年来 &#xff0c;大容量数据存储设备受到软硬件等发展的限制主 要还是采用机械硬盘叠加组合而用。机械硬盘以磁盘片作为载 体 &#xff0c;采用机械马达 &#xff0c;存在抗振性能低、低温性能差、噪声大等缺点。 固态硬盘是以半导体作为存储介质及控制载体 &…

使用马哈鱼SQLFLow 1 分钟获取复杂 SQL 语句的血缘关系

数据血缘关系在企业的数据治理中是非常重要的一个环节&#xff0c;关于数据血缘在企业数据治理中的重要作用&#xff0c;可以参考这篇文章。SQL 语言在数据处理中被广泛使用&#xff0c;SQL 语句中包含了丰富的数据血缘关系&#xff0c;关于什么是 SQL 中的数据血缘&#xff0c…

死锁与活锁

1 死锁概述 死锁主要是由于资源使用不当引发的。OS中存在很多不同类型的软硬件资源&#xff0c;而可以引发死锁的资源 主要是需要互斥访问的、不可被抢占的资源&#xff0c;即临界资源。下面先来简单了解下资源的分类。 资源分类 按照资源是否可重复使用划分&#xff0c;可以分…

Spring ( 三 ) SpringIoC

3.SpringIoC Spring 核心 是 通过IoC 降低 项目中的类之间的耦合 IoC Inversion of Control 控制反转&#xff1a; 应用本身不负责依赖对象的创建及维护&#xff0c;依赖对象的创建及维护是由外部容器负责的。 ​ 这样控制权就由应用转移到了外部容器&#xff0c;控制权的转移…

【Linux从入门到精通】一文带你理解进程概念

我们通过对上篇文章冯诺依曼体系结构对硬件进行讲解后&#xff0c; 本篇文章会对进程进行深入讲解。同时会讲解PCB&#xff08;进程控制块&#xff09;。希望本篇文章内容会对你有所帮助。 文章目录 一、再次理解操作系统 1、1 操作系统的作用 1、2 操作系统的管理 二、进程基本…

基于Kubernetes集群构建大中型企业CICD应用平台(5)--Integrate工具

5.1、jenkins介绍 持续集成、持续部署的工具很多&#xff0c;其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务&#xff0c;并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作&#xff0c;安装成本较高&am…