pandas中std和numpy的np.std区别及说明

 更新时间:2023年08月15日 14:54:52   作者:AML杰  
这篇文章主要介绍了pandas中std和numpy的np.std区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pandas中std和numpy的std区别

原理

计算标准差时,需要注意numpy中的std和pandas的std在计算标准差时,默认的计算结果会存在不一致的问题。

原因在于默认情况下,

  • numpy计算的为总体标准偏差,ddof=0;一般在拥有所有数据的情况下,计算所有数据的标准差时使用,即最终除以n,而非n-1;
  • pandas计算的为样本标准偏差,ddof=1;一般在只有部分数据,但需要求得总体的标准差时使用,当只有部分数据时,根据统计规律,除以n时计算的标准差往往偏小,因此需要除以n-1,即n-ddof;

实际使用时需要注意,并且根据数据情况选择合适的函数,在数据量较大时,推荐使用numpy进行计算。

速度区别

速度由快到慢依次:

s1 = pd.Series([1,2,3,4,5])
#速度由快至慢
np.std(s1.values) > s1.std(ddof=0) > np.std(s1)

使用numpy和pandas计算平均值、方差、标准差

numpy和pandas都可以实现计算平均值、方差、标准差。

但numpy默认的是总体方差,pandas默认的样本方差,即分母是n-1,是总体的无偏估计。

numpy的语法

# numpy计算方法
import numpy as np
x = [1,2,3,4,5]
# mean
mean = np.mean(x)
# variation
var = np.var(x)
# stander var
std = np.std(x,ddof=1)  #ddof=1 表示样本方差分母是n-1,无偏估计  doof=0 表示总体标准差

pandas的语法

#pandas计算方法
#axis = 0表示跨行,axis=1表示跨列
import pandas as pd
data_dic = {'c1' : [1,2,3],
            'c2': [1,3,5]}
df = pd.DataFrame(data_dic)
#c1列的meam
mean = df['c1'].mean()
#or
mean = df.iloc[:,0].mean()
#c1列的var
var = df['c1'].var()    #计算的无偏样本方差
var = df['c1'].values.var()  #计算的是有偏的总体方差
#c1列的std
std = df['c1'].std()    
std = df['c1'].values.std()  

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python正则表达式的使用范例详解

    Python正则表达式的使用范例详解

    本文将是一系列关于Python正则表达式文章的其中一部分。在这个系列的第一篇文章中,我们将重点讨论如何使用Python中的正则表达式并突出Python中一些独有的特性。
    2014-08-08
  • python plt.plot bar 如何设置绘图尺寸大小

    python plt.plot bar 如何设置绘图尺寸大小

    这篇文章主要介绍了python plt.plot bar 设置绘图尺寸大小的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python asyncio的一个坑

    Python asyncio的一个坑

    这篇文章主要介绍了Python asyncio的一个坑,文章从Python编程错误开始介绍,改变与好多变不成中常犯的错误,我们今天就来分析分析吧,需要的下伙伴也可以参考一下
    2021-12-12
  • python操作excel的包(openpyxl、xlsxwriter)

    python操作excel的包(openpyxl、xlsxwriter)

    这篇文章主要为大家详细介绍了python操作excel的包,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python版贪吃蛇保姆级教程(附完整代码有详细注释)

    Python版贪吃蛇保姆级教程(附完整代码有详细注释)

    这篇文章主要给大家介绍了关于Python版贪吃蛇保姆级教程的相关资料,包括初始化、移动控制、智能食物生成、碰撞检测、高分记录及动态速度调节等核心功能,附完整代码与详细注释,需要的朋友可以参考下
    2025-06-06
  • python muggle_ocr库用法及实例代码

    python muggle_ocr库用法及实例代码

    在本篇文章里小编给大家整理的是一篇关于python muggle_ocr库用法及实例代码内容,有需要的朋友们可以跟着学习参考下。
    2021-07-07
  • python自动化操作之动态验证码、滑动验证码的降噪和识别

    python自动化操作之动态验证码、滑动验证码的降噪和识别

    很多网站登录都需要输入验证码,如果要实现自动登录就不可避免的要识别验证码,下面这篇文章主要给大家介绍了关于python自动化操作之动态验证码、滑动验证码的降噪和识别,需要的朋友可以参考下
    2021-08-08
  • Python使用树状图实现可视化聚类详解

    Python使用树状图实现可视化聚类详解

    一般情况下,我们都是使用散点图进行聚类可视化,但是某些的聚类算法可视化时散点图并不理想,所以在这篇文章中,我们介绍如何使用树状图(Dendrograms)对我们的聚类结果进行可视化
    2023-03-03
  • Python中处理JSON文件的超详细指南

    Python中处理JSON文件的超详细指南

    这篇文章主要给大家介绍了关于Python中处理JSON文件的超详细指南,json模块是python内置的库,不需要额外安装就可以导入运行,json模块的主要功能是将序列化数据从文件里读取出来或者存入文件,需要的朋友可以参考下
    2024-05-05
  • Python操作Oracle数据库的简单方法和封装类实例

    Python操作Oracle数据库的简单方法和封装类实例

    这篇文章主要介绍了Python操作Oracle数据库的简单方法和封装类,结合实例形式分析了Python简单连接、查询、关闭Oracle数据库基本操作,并给出了一个Python针对Oracle各种操作的封装类,需要的朋友可以参考下
    2018-05-05

最新评论