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 28 Python
Python生成短uuid的方法实例详解
May 29 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
python读写配置文件操作示例
Jul 03 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
python实现股票历史数据可视化分析案例
Jun 10 Python
深入浅析Django MTV模式
Sep 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 获取本地IP代码
2013/06/23 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
ParseInt函数参数设置介绍
2014/01/02 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
JavaScript错误处理
2015/02/03 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
python操作ie登陆土豆网的方法
2015/05/09 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python实现一组典型数据格式转换
2018/12/15 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
校庆接待方案
2014/03/18 职场文书
环保倡议书300字
2014/05/15 职场文书
食堂标语大全
2014/06/11 职场文书
公开致歉信
2019/06/24 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle