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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
使用PDB模式调试Python程序介绍
Apr 05 Python
Python 调用Java实例详解
Jun 02 Python
python中实现k-means聚类算法详解
Nov 11 Python
python并发编程之线程实例解析
Dec 27 Python
《Python学习手册》学习总结
Jan 17 Python
python实现linux下抓包并存库功能
Jul 18 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
python样条插值的实现代码
Dec 17 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
Python中seaborn库之countplot的数据可视化使用
Jun 11 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新手谈谈我的学习心得
2007/02/25 PHP
PHP闭包函数详解
2016/02/13 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
django最快程序开发流程详解
2019/07/19 Python
Python实现画图软件功能方法详解
2020/07/28 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
国旗下的演讲稿
2014/05/08 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
超市工作总结范文2014
2014/12/19 职场文书
公司表扬信格式
2015/05/04 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
Java Dubbo框架知识点梳理
2021/06/26 Java/Android