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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
python中尾递归用法实例详解
Apr 28 Python
Python3.6正式版新特性预览
Dec 15 Python
python读取文件名称生成list的方法
Apr 27 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python实现浪漫的烟花秀
Jan 30 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
Python 静态方法和类方法实例分析
Nov 21 Python
Python遍历字典方式就实例详解
Dec 28 Python
pytorch之ImageFolder使用详解
Jan 06 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 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
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
php创建类并调用的实例方法
2019/09/25 PHP
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
学生自我鉴定
2013/12/18 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
普通党员对照检查材料
2014/08/28 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014年采购部工作总结
2014/11/20 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
社区宣传标语口号
2015/12/26 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python