【python】Numpy统计函数总结

news/2024/5/1 22:13:30/文章来源:https://blog.csdn.net/m0_37816922/article/details/127704983

文章目录

    • 函数列表
    • 相关系数
    • 直方图

函数列表

最值amin, amax, nanmin, nanmax, 极差ptp
分位数percentile∗^* quantile∗^*,
统计量中位数median∗^*;平均数mean∗^*;变化幅度var;加权平均average
标准差std;协方差cov;相乘求和correlate, 相关系数corrcoef
直方图histogram, histogram2d, histogramdd

  • 标有星号*的表示存在一个nan开头的同名函数,可以忽略非有效值。例如median对应nanmedian

上表中大部分函数可以顾名思义,下面对相关系数和直方图做进一步的介绍

相关系数

首先回忆一下协方差的概念,对于X,YX, YX,Y两组样本,其协方差可以表示为

cov(X,Y)=∑i=1n(xi−xˉ)(yi−yˉ)n−1cov(X,Y) = \frac{\sum_{i=1}^n(x_i-\bar x)(y_i-\bar y)}{n-1} cov(X,Y)=n1i=1n(xixˉ)(yiyˉ)

numpy中的协方差函数cov,得到的是一个矩阵,分别用于描述X−X,X−Y,Y−X,Y−YX-X, X-Y, Y-X, Y-YXX,XY,YX,YY这四对协方差,对于数组与其自身的协方差,其协方差表达式退化为

cov(X,X)=∑i=1n(xi−xˉ)(xi−xˉ)n−1=∑i=1n(xi−xˉ)2n−1cov(X,X) = \frac{\sum_{i=1}^n(x_i-\bar x)(x_i-\bar x)}{n-1} =\frac{\sum_{i=1}^n(x_i-\bar x)^2}{n-1} cov(X,X)=n1i=1n(xixˉ)(xixˉ)=n1i=1n(xixˉ)2

这和标准差的公式是极为相近的,Numpy中的标准差公式是

std(X)==∑i=1n(xi−xˉ)2nstd(X) = =\sqrt\frac{\sum_{i=1}^n(x_i-\bar x)^2}{n} std(X)==ni=1n(xixˉ)2

下面输入代码验证一下

>>> x = np.arange(10)
>>> np.cov(x,x[::-1])
array([[ 9.16666667, -9.16666667],[-9.16666667,  9.16666667]])
>>> np.std(x)**2*10/9
9.166666666666666

其中[::-1]表示将数组前后倒置。

在理解协方差与方差之后,就可以理解相关系数,记CijC_{ij}Cij为第iii和第jjj列数组之间的协方差,那么相关系数可表示为

Rij=CijCiiCjjR_{ij}=\frac{C_{ij}}{\sqrt{C_{ii}C_jj}} Rij=CiiCjjCij

可见,当i==ji==ji==j时,数组与其自身的相关系数为1。

>>> np.corrcoef(x,x[::-1])
array([[ 1., -1.],[-1.,  1.]])

直方图

histogram用于得到数据直方图数据,histogram2d表示二维的直方图,histogramdd表示高维直方图。其输入参数可表示为

histogram(a, bins=10, range=None, normed=None, weights=None, density=None)

其中

  • a是待统计数组;
  • bins指定区间数
  • range 表示统计区域,例如[0,1]表示统计从0到1的值
  • weights 表示数组权重
  • density 为True时,返回概率密度;为False时,返回元素个数
a = np.random.normal(size=1000)
y, x = np.histogram(a, bins=20)
print(y)
>>> print(y)
#[  1   1   1   1   6  11  29  53  74 101 128 140 131 112  90  59  29  18  12   3]

得到x长度为10,表示每个区间中的元素个数;y的长度为11,表示区间的起止值。

这个结果可以画图看一下

import matplotlib.pyplot as plt
plt.bar(x[:-1], y, width=1, align='edge')

在这里插入图片描述

histogram_bin_edgeshistogram功能相同,但只输出直方图的边缘,即上面的y

digsize(a,y)用于统计数组a中的值对应在y中对应区间的位置,例如y=[1,2,3],则1.5在1和2之间,属于第一个区间;0在1前面,是第0个区间。对应histogram的例子,表示找到ay中的位置。

bincount可以用于统计正整数的个数

>>> test = [np.random.randint(20) for _ in range(500)]
>>> np.bincount(test)
array([29, 23, 19, 21, 29, 16, 16, 33, 23, 32, 20, 28, 29, 22, 19, 32, 27,33, 19, 30], dtype=int64)

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运算放大器正反馈负反馈判别法

---------------------------------------------------------------------------------------------------------------- 反馈可分为负反馈和正反馈。前者使输出起到与输入相反的作用,使系统输出与系统目标的误差减小,系统趋于稳定;后者使输出…

浅谈java中的String

Java中的String类型不属于八大基本数据类型,而是一个引用数据类型,所以在定义一个String对象的时候如果不直接赋值给这个对象,它的默认值就是null。我们要怎么理解String类型的不可变,在JDK源码中String这个类的value方法被final关…

【C++】如何修改set的值

问题&#xff1a;尝试通过begin方法得到的迭代器去修改值&#xff0c;发现会报错。 set<string> st{"hello", "world", "good"}; set<string>::iterator it st.begin(); *it "test"; 原因&#xff1a;我们可以在源码里…

怎么搭建搜题接口api

怎么搭建搜题接口api 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点击…

RTSP协议学习Ubuntu环境准备

文章目录RTSP协议学习Ubuntu环境准备RTSP协议概述Ubuntu环境准备一、Ubuntu安装FFmpeg二、安装ZLMediaKit1、获取代码2、强烈推荐3、编译器3.1、编译器版本要求3.2、安装编译器4、cmake5、依赖库5.1、依赖库列表5.2、安装依赖库6、构建和编译项目7、运行8、测试三、测试推流测试…

【Tomcat】解决Tomcat服务器乱码问题

俩地方开展出现乱码的原因1、以startup.bat文件打开的服务器出现乱码2、在IDEA中运行Tomcat服务器出现乱码问题3、有关社区版IDEA如何开发JavaWeb项目出现乱码的原因 使用了错误的字符编码去解码字节流&#xff0c;所以出现乱码咱思维要清晰&#xff0c;就去找字符编码是否与其…

【TS04——接口的多态——泛型接口】

接口的多态&#xff0c;同一个方法&#xff0c;传入不同的参数&#xff0c;他所对应的操作不同成为多态【参数不同】或者可以理解为同一个方法&#xff0c;返回不同的结果&#xff0c;称之多态。 interface IfnPerson {run():voidrun(id:number):voidrun(id:number,name:strin…

【生日快乐】Node.js 实战 第1章 欢迎进入Node.js 的世界 1.3 安装Node

Node.js 实战 文章目录Node.js 实战第1章 欢迎进入Node.js 的世界1.3 安装Node第1章 欢迎进入Node.js 的世界 1.3 安装Node 安装Node的最简单的方法是使用其官网上的安装程序。可以用对应Mac或 Windows的安装程序安装最新的当前版。 官网安装包下载地址&#xff1a;https://…

Jenkins部署详细教程

Jenkins简介 Jenkins 是一个可扩展的持续集成引擎。是一个自成一体的开源自动化服务器, 可用于自动化与构建、测试、交付或部署软件相关的各种任务; Jenkins是一个高度可扩展的产品, 其功能可以通过安装插件来扩展。 在gitlab里可以完成源代码的管理&#xff0c;但是对于研发…

[ACTF2020 新生赛]Exec1命令注入

1.来看题目如下 得到一个ping的输入框&#xff0c;老样子先检查网页源码看有没有什么好东西&#xff0c;得到一个链接&#xff0c;我们来访问一下 发现也没什么有用处的信息&#xff0c;于是看到题目的标题之后联想到了命令注入&#xff0c; 那么是怎么判断使用命令注入的呢&am…

MyBatis初步了解

1.Mybatis简介 1.1原始jdbc操作&#xff08;查询数据&#xff09; 1.2原始jdbc操作&#xff08;插入数据&#xff09; 1.3 原始jdbc操作的分析 原始jdbc开发存在的问题如下&#xff1a; ①数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能 ②sql 语句在代码中硬编…

深入理解Java虚拟机:Java运行内存结构

本篇内容包括&#xff1a;JAVA 运行内存结构&#xff0c;即 程序计数器、Java 虚拟机栈、本地方法栈 、Java堆、方法区、运行时常量池 以及 直接内存等相关内容&#xff01; 一、JAVA 运行内存结构 Jvm 执行 Java 程序时&#xff0c;会把它所管理的内存划分为若干个不同的数据…

软件设计与体系——创建型模式

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;瞳孔的个人空间 创建型模式&#xff1a; 创建型模式抽象了实例化过程帮助系统独立于如何创建、组合和表示对象 一个类创建型模式使用继承改变被实例化的类类创建型模式使用继承改变被实例化的类对象…

自学Python需要掌握哪些知识点?怎么学?

其实这个问题你可以转换一下思路&#xff0c;自学python有什么合适的学习路线&#xff0c;基本路线里涉及到的都是需要掌握的~ 单个知识点那罗列起来可是太多了~ 另外你可以考虑下你自学python的目的和方向&#xff0c;是单纯兴趣还是说要学了就业~ 想往人工智能方向发展还是P…

如何实现CAN/LIN通信路由测试?

目前车载网络通信越来越复杂&#xff0c;通信总线、协议多种多样&#xff0c;网关作为信息交互的载体&#xff0c;主要通过报文路由转发、报文过滤、信号重组等方式实现不同网段、不同协议间的信息交互&#xff1b;在复杂的车载网络中&#xff0c;网关通信路由转发功能具有非常…

软件设计师--数据结构考点细节总结

视频2022软件设计师-提炼高频考点-个人学习过程的总结&#xff0c;仅供参考&#xff01;_哔哩哔哩_bilibili 目录 1&#xff0c;栈 2,二叉树 3&#xff0c;HUFFMAN 特点&#xff1a; 4&#xff0c;文件压缩比 5&#xff0c;拓扑排序 -- 有向无环图 6&#xff0c;查找 7…

CSDN编程竞赛第八期 | 参赛经历分享

参赛经历分享 一共参与七次了&#xff0c;这是我第二次在CSDN竞赛上获奖&#xff0c;上一次获奖是在第四期&#xff0c;获得了第三名&#xff0c;拿到了一个高级背包、一件T恤和一个获奖证书&#xff0c;我之前拍照发过动态的&#xff0c;详情请见&#xff1a;动态 - CSDN 然后…

机器视觉(三):摄像机标定技术

目录&#xff1a; 机器视觉&#xff08;二&#xff09;&#xff1a;机器视觉硬件技术 机器视觉&#xff08;三&#xff09;&#xff1a;摄像机标定技术 &#x1f30f;&#x1f9d0;以下为正文&#x1f984;&#x1fa90; 摄像机标定的目的&#xff1a;三维重建 空间物体表面…

FOTS:端到端的文本检测与识别方法的原理应用与优势

导言&#xff1a; 基于深度学习的可端到端训练的自然场景检测与识别算法(text spotting)由于其简洁高效且统一的结构&#xff0c;逐渐取代了过去将检测与识别分阶段训练然后拼接在一起的方案&#xff0c;成为自然场景文本检测与识别的主流研究方向之一。端到端自然场景文本检测…

rk3288-android8.1-OV13850

第一步,要到规格书,知道引脚定义 第二步,对应原理图定义 第三步 电源是打开的,如果是GPIO请设置 第四步,查看是否有驱动 out目录可以看到驱动 第五步,查看是否有以下文件