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 pdb调试方法分享
Jan 21 Python
让python同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python的动态重新封装的教程
Apr 11 Python
简单谈谈python中的语句和语法
Aug 10 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
opencv python 傅里叶变换的使用
Jul 21 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
Python的Lambda函数用法详解
Sep 03 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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
DOMXML函数笔记
2006/10/09 PHP
两种php调用Java对象的方法
2006/10/09 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php实现多城市切换特效
2015/08/09 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
Python break语句详解
2014/03/11 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
投标承诺书范本
2014/03/27 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
辞职信范文大全
2015/03/02 职场文书
团支部书记竞选稿
2015/11/21 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技