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 代码优化详解
Oct 27 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
Python matplotlib画曲线例题解析
Feb 07 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
Python如何解除一个装饰器
Aug 07 Python
Python根据字符串调用函数过程解析
Nov 05 Python
python字符串拼接+和join的区别详解
Dec 03 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 Python
python内置进制转换函数的操作
Jun 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中的MVC模式运用技巧
2007/05/03 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
简单讲解Python中的闭包
2015/08/11 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python分割列表(list)的方法示例
2017/05/07 Python
python的多重继承的理解
2017/08/06 Python
python版本的仿windows计划任务工具
2018/04/30 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
Python @property使用方法解析
2019/09/17 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
空乘英文求职信
2014/04/13 职场文书
员工保密协议书
2014/09/27 职场文书
人事局接收函
2015/01/31 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
茶花女读书笔记
2015/06/29 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书