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搭建简易服务器分析与实现
Dec 15 Python
讲解Python中的递归函数
Apr 27 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
Python中类的初始化特殊方法
Dec 01 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
对python周期性定时器的示例详解
Feb 19 Python
python实现海螺图片的方法示例
May 12 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 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写出自己的BLOG系统 2
2010/04/12 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
React简单介绍
2017/05/24 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
建议书标准格式
2014/03/12 职场文书
百年校庆节目主持词
2014/03/27 职场文书
项目申请汇报材料
2014/08/16 职场文书
2015年党总支工作总结
2015/05/25 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python