python 标准差计算的实现(std)


Posted in Python onJuly 29, 2019

numpy.std() 求标准差的时候默认是除以 n 的,即是有偏的,np.std无偏样本标准差方式为加入参数 ddof = 1;

pandas.std() 默认是除以n-1 的,即是无偏的,如果想和numpy.std() 一样有偏,需要加上参数ddof=0 ,即pandas.std(ddof=0) ;DataFrame的describe()中就包含有std();

demo:

>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.std(a, ddof = 1)
3.0276503540974917
>>> np.sqrt(((a - np.mean(a)) ** 2).sum() / (a.size - 1))
3.0276503540974917
>>> np.sqrt(( a.var() * a.size) / (a.size - 1))
3.0276503540974917

PS:numpy中标准差std的神坑

我们用Matlab作为对比。计算标准差,得到:

>> std([1,2,3])
ans =
   1

然而在numpy中:

>>> np.std([1,2,3])
0.81649658092772603

什么鬼!这么简单的都能出错?原因在于,np.std有这么一个参数:

ddof : int, optional
Means Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements. By default ddof is zero.

因此,想要正确调用,必须使ddof=1:

>>> np.std([1,2,3], ddof=1)
1.0

而且,这一特性还影响到了许多基于numpy的包。比如scikit-learn里的StandardScaler。想要正确调用,只能自己手动设置参数:

ss = StandardScaler()
ss.mean_ = np.mean(X, axis=0)
ss.scale_ = np.std(X, axis=0, ddof=1)
X_norm = ss.transform(X)

当X数据量较大时无所谓,当X数据量较小时则要尤为注意。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过floor函数舍弃小数位的方法
Mar 17 Python
python选择排序算法实例总结
Jul 01 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
python顺序执行多个py文件的方法
Jun 29 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 #Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 #Python
Python秒算24点实现及原理详解
Jul 29 #Python
django之状态保持-使用redis存储session的例子
Jul 28 #Python
django 通过URL访问上传的文件方法
Jul 28 #Python
django使用admin站点上传图片的实例
Jul 28 #Python
Python中变量的输入输出实例代码详解
Jul 28 #Python
You might like
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python Logging 日志记录入门学习
2018/06/02 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
python中有帮助函数吗
2020/06/19 Python
python 通过exifread读取照片信息
2020/12/24 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
小学教师的个人自我鉴定
2013/10/26 职场文书
上班看电影检讨书
2014/02/12 职场文书
标准版离职证明书
2014/09/12 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
新生入学欢迎词
2015/01/26 职场文书
仓管员岗位职责
2015/02/03 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang