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 随机生成中文验证码的实例代码
Mar 20 Python
python计算最大优先级队列实例
Dec 18 Python
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
python实现简单遗传算法
Mar 19 Python
简单了解python的break、continue、pass
Jul 08 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Python手动或自动协程操作方法解析
Jun 22 Python
keras用auc做metrics以及早停实例
Jul 02 Python
python collections模块的使用
Oct 16 Python
python 对图片进行简单的处理
Jun 23 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
php实现数字补零的方法总结
2018/09/12 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
求职简历中的自我评价分享
2013/12/08 职场文书
护理见习报告范文
2014/11/03 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
名人传读书笔记
2015/06/26 职场文书
mysql知识点整理
2021/04/05 MySQL
delete in子查询不走索引问题分析
2022/07/07 MySQL