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实现代码统计工具(终极篇)
Jul 04 Python
使用python实现生成用户信息
Mar 20 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
python ansible服务及剧本编写
Dec 29 Python
python实现windows下文件备份脚本
May 27 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
Python 实现向word(docx)中输出
Feb 13 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
解决pytorch 模型复制的一些问题
Mar 03 Python
Python中的套接字编程是什么?
Jun 21 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与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
Javascript - HTML的request类
2006/07/15 Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
js的2种继承方式详解
2014/03/04 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
Python匹配中文的正则表达式
2016/05/11 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
python构造IP报文实例
2020/05/05 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
高中数学教师求职信
2013/10/30 职场文书
积极分子思想汇报
2014/01/04 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
劳模事迹材料范文
2014/12/24 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书