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中利用sorted()函数排序的简单教程
Apr 27 Python
Python的语言类型(详解)
Jun 24 Python
Python实现的直接插入排序算法示例
Apr 29 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Python日志syslog使用原理详解
Feb 18 Python
django实现模型字段动态choice的操作
Apr 01 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
pandas中对文本类型数据的处理小结
Nov 01 Python
python中tkinter复选框使用操作
Nov 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模板中出现空行解决方法
2011/03/08 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
python如何实现反向迭代
2018/03/20 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
教师职称自我鉴定
2014/02/12 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
责任书范本
2014/08/25 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
感恩教师节主题班会
2015/08/12 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
高三语文教学反思
2016/02/16 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android