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装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
python决策树之C4.5算法详解
Dec 20 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
python3 拼接字符串的7种方法
Sep 12 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
用pycharm开发django项目示例代码
Jun 13 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
Python __slots__的使用方法
Nov 15 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生成树的方法
2015/07/28 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python多线程http下载实现示例
2013/12/30 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Python实现微信机器人的方法
2019/09/06 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python如何合并多个字典或映射
2020/07/24 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
Python collections模块的使用方法
2020/10/09 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
班级活动策划书
2014/02/06 职场文书
住宅使用说明书
2014/05/09 职场文书
党委班子剖析材料
2014/08/21 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
单位委托书
2014/10/15 职场文书
2014年督导工作总结
2014/11/19 职场文书
先进员工事迹材料
2014/12/20 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python