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编程中进行迭代和遍历
Jan 19 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
python取代netcat过程分析
Feb 10 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Django通过json格式收集主机信息
May 29 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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支持断点续传的源码
2010/05/16 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Pandas标记删除重复记录的方法
2018/04/08 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Python换行与不换行的输出实例
2020/02/19 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
无财产离婚协议书范本
2014/10/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
志愿者工作心得体会
2016/01/15 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL