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+requests+unittest API接口测试实例(详解)
Jun 10 Python
书单|人生苦短,你还不用python!
Dec 29 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
实例讲解Python3中abs()函数
Feb 19 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
Django 自动生成api接口文档教程
Nov 19 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
python实现简易淘宝购物
Nov 22 Python
python实现处理mysql结果输出方式
Apr 09 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
Python常用断言函数实例汇总
Nov 30 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
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Python包和模块的分发详细介绍
2020/06/19 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
个人求职信范文分享
2014/01/31 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
2014年公务员工作总结
2014/11/18 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang