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中使用mongoengine操作MongoDB教程
Apr 24 Python
python使用PIL模块实现给图片打水印的方法
May 22 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
使用Python读取大文件的方法
Feb 11 Python
TensorFlow模型保存和提取的方法
Mar 08 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
python随机数分布random均匀分布实例
Nov 27 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
Python OpenCV超详细讲解基本功能
Apr 02 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
Destoon实现多表查询示例
2014/08/21 PHP
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
jquery Form轻松实现文件上传
2017/05/24 jQuery
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Django 限制访问频率的思路详解
2019/12/24 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
甘南现象心得体会
2014/09/11 职场文书
政协会议宣传标语
2014/10/09 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android
php将xml转化对象的实例详解
2021/11/17 PHP
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android