Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算


Posted in Python onDecember 28, 2018

使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算。

variance: 方差

方差(Variance)是概率论中最基础的概念之一,它是由统计学天才罗纳德·费雪1918年最早所提出。用于衡量数据离散程度,因为它能体现变量与其数学期望(均值)之间的偏离程度。具有相同均值的数据,而标准差可能不同,而通过标准差的大小则能更好地反映出数据的偏离度。

计算:一组数据1,2,3,4,其方差应该是多少?

计算如下:

均值=(1+2+3+4)/4=2.5
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/4 = (2.25+0.25+0.25+2.25)/4 = 1.25

python的numpy库中使用var函数即可求解,代码&执行如下:

liumiaocn:tmp liumiao$ cat np-5.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("variance of [1,2,3,4]:", np.var(arr))
liumiaocn:tmp liumiao$ python np-5.py 
('variance of [1,2,3,4]:', 1.25)
liumiaocn:tmp liumiao$

standard deviation: 标准偏差

标准偏差=方差的开放,所以:

计算: 一组数据1,2,3,4,其标准偏差应该是多少?

计算就很简单了,对其求出的方差1.25进行开方运算即可得到大约1.118

可以使用numpy库中的std函数就可以非常简单的求解,代码&执行如下:

liumiaocn:tmp liumiao$ cat np-6.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("variance of [1,2,3,4]:", np.var(arr))
print("sqrt of variance [1,2,3,4]:",np.sqrt(np.var(arr)))
print("standard deviation: np.std()", np.std(arr))
liumiaocn:tmp liumiao$ python np-6.py 
('variance of [1,2,3,4]:', 1.25)
('sqrt of variance [1,2,3,4]:', 1.118033988749895)
('standard deviation: np.std()', 1.118033988749895)
liumiaocn:tmp liumiao$

sample standard deviation: 样本标准偏差

标准偏差是对总体样本进行求解,如果有取样,则需要使用样本标准偏差,它也是一个求开方的运算,但是对象不是方差,方差使用是各个数据与数学均值的差的求和的均值,简单来说除的对象是N,样本偏差则是N-1。

计算: 一组数据1,2,3,4,其样本标准偏差应该是多少?
计算如下:
均值=(1+2+3+4)/4=2.5
样本标准偏差的方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/3 = (2.25+0.25+0.25+2.25)/4 = 5/3
所以对5/3开方运算所得到的就是样本标准偏差为:1.29

同样适用numpy的std函数就可以做到这点,只需要将其一个Optional的参数设定为1即可,代码&执行如下:

liumiaocn:tmp liumiao$ cat np-7.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("sample standard deviation: np.std()", np.std(arr, ddof=1))
liumiaocn:tmp liumiao$ python np-7.py 
('sample standard deviation: np.std()', 1.2909944487358056)
liumiaocn:tmp liumiao$

注意:matlab中的std实际指的是样本标准偏差,这点需要注意,如果你的代码从matlab上copy过来,请注意其实际的意义是标准偏差还是样本标准偏差

Covariance:协方差

协方差和方差较为接近,区别在于除数为N-1。

计算: 一组数据1,2,3,4,其协方差应该是多少?

计算如下:

均值=(1+2+3+4)/4=2.5
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/(4-1) = (2.25+0.25+0.25+2.25)/3 = 1.66667

使用numpy的cov函数即可简单求出,代码和执行结果如下:

liumiaocn:tmp liumiao$ cat np-8.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("Covariance: np.cov()", np.cov(arr))
liumiaocn:tmp liumiao$ python np-8.py 
('Covariance: np.cov()', array(1.66666667))
liumiaocn:tmp liumiao$

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python 内置函数complex详解
Oct 23 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
Python分支结构(switch)操作简介
Jan 17 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
python虚拟环境完美部署教程
Aug 06 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
Python ORM框架Peewee用法详解
Apr 29 Python
python反爬虫方法的优缺点分析
Nov 25 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
Python编程深度学习绘图库之matplotlib
Dec 28 #Python
对pandas写入读取h5文件的方法详解
Dec 28 #Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 #Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 #Python
python 检查是否为中文字符串的方法
Dec 28 #Python
浅谈python3发送post请求参数为空的情况
Dec 28 #Python
python3使用flask编写注册post接口的方法
Dec 28 #Python
You might like
php读取纯真ip数据库使用示例
2014/01/26 PHP
php两种无限分类方法实例
2015/04/21 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python实现telnet服务器的方法
2015/07/10 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
人事主管岗位职责范本
2013/12/04 职场文书
面料业务员岗位职责
2013/12/26 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
建筑工地质量标语
2014/06/12 职场文书
民政局个人整改措施
2014/09/24 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
雨中的树观后感
2015/06/03 职场文书
团支部书记竞选稿
2015/11/21 职场文书
听课评课活动心得体会
2016/01/15 职场文书
java中如何截取字符串最后一位
2022/07/07 Java/Android