python 标准差计算的实现(std)

 更新时间:2019年07月29日 09:22:32   作者:Gooooa  
这篇文章主要介绍了python 标准差计算的实现(std),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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 Tkinter美化弹窗的示例详解

    Python Tkinter美化弹窗的示例详解

    在Python编程中,Tkinter是标准GUI(图形用户界面)库,它允许开发者创建桌面应用程序,本文将详细介绍如何使用Tkinter创建并美化弹窗,需要的可以参考下
    2024-12-12
  • PyTorch中的参数类torch.nn.Parameter()详解

    PyTorch中的参数类torch.nn.Parameter()详解

    这篇文章主要给大家介绍了关于PyTorch中torch.nn.Parameter()的相关资料,要内容包括基础应用、实用技巧、原理机制等方面,文章通过实例介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Pytest Fixture参数讲解及使用

    Pytest Fixture参数讲解及使用

    这篇文章主要介绍了Pytest之Fixture参数详解及使用,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • python空元组在all中返回结果详解

    python空元组在all中返回结果详解

    在本篇文章里小编给大家整理的是一篇关于python空元组在all中返回结果详解内容,有需要的朋友们可以学习参考下。
    2020-12-12
  • python爬虫框架scrapy下载中间件的编写方法

    python爬虫框架scrapy下载中间件的编写方法

    这篇文章主要介绍了python爬虫框架scrapy下载中间件,在每一个scrapy工程中都有一个名为 middlewares.py 的文件,这个就是中间件文件,本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-03-03
  • 浅析Python条件语句中的解密逻辑与控制流

    浅析Python条件语句中的解密逻辑与控制流

    这篇文章主要想来和大家一起探索一下Python条件语句的奇妙世界——解密逻辑与控制流,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-07-07
  • 简单了解python元组tuple相关原理

    简单了解python元组tuple相关原理

    这篇文章主要介绍了简单了解python元组tuple相关原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python中判断字符串值是否为数字的方法

    python中判断字符串值是否为数字的方法

    本文介绍了几种判断Python字符串是否为数字的方法,包括isdigit()、isnumeric()方法,以及使用try-except块进行类型转换,对于更复杂的数字格式,还推荐使用正则表达式进行匹配,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Idea安装python显示无SDK问题解决方案

    Idea安装python显示无SDK问题解决方案

    这篇文章主要介绍了Idea安装python显示无SDK问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • LyScript实现指令查询功能的示例代码

    LyScript实现指令查询功能的示例代码

    对LyScript自动化插件进行二次封装,可以实现从内存中读入目标进程解码后的机器码。所以本文为大家介绍了如何实现LyScript指令查询功能,需要的可以参考一下
    2022-09-09

最新评论