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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python中super关键字用法实例分析
May 28 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python Json序列化与反序列化的示例
Jan 31 Python
python requests post多层字典的方法
Dec 27 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
python双向链表原理与实现方法详解
Dec 03 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
在Windows下安装配置CPU版的PyTorch的方法
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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Python类属性与实例属性用法分析
2015/05/09 Python
python实现读取命令行参数的方法
2015/05/22 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
高考自主招生自荐信
2013/10/20 职场文书
预备党员表决心书
2014/03/11 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
小学推普周活动总结
2015/05/07 职场文书
mysql中整数数据类型tinyint详解
2021/12/06 MySQL