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批量生成本地ip地址的方法
Mar 23 Python
RC4文件加密的python实现方法
Jun 30 Python
Python模拟用户登录验证
Sep 11 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
对django views中 request, response的常用操作详解
Jul 17 Python
Python 项目转化为so文件实例
Dec 23 Python
python正则表达式匹配IP代码实例
Dec 28 Python
Python实现结构体代码实例
Feb 10 Python
Python如何安装第三方模块
May 28 Python
浅谈Python协程
Jun 17 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
幼儿园教师辞职信
2014/01/18 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
合作与交流自我评价
2015/03/09 职场文书
安全教育日主题班会
2015/08/13 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫