首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >numpy.std和excel STDEV函数有什么区别吗?

numpy.std和excel STDEV函数有什么区别吗?
EN

Stack Overflow用户
提问于 2015-12-07 12:48:37
回答 1查看 8.4K关注 0票数 8

我有一份清单:

代码语言:javascript
运行
复制
s = [0.995537725, 0.994532199, 0.996027983, 0.999891383, 1.004754272, 1.003870012, 0.999888944, 0.994438078, 0.992548715, 0.998344545, 1.004504764, 1.00883411]

我在Excel中计算了它的标准差,得到了答案:0.005106477,我使用的函数是:=STDEV(C5:N5)

然后,我使用numpy.std进行与以下相同的计算:

代码语言:javascript
运行
复制
import numpy as np

print np.std(s)

然而,我得到了答案:0.0048890791894

我甚至写下了我自己的性病功能:

代码语言:javascript
运行
复制
def std(input_list):
        count = len(input_list)

        mean = float(sum(input_list)) / float(count)

        overall = 0.0
        for i in input_list:
            overall = overall + (i - mean) * (i - mean)

        return math.sqrt(overall / count)

我自己的函数给出了和numpy一样的结果。

所以我想知道这有什么区别吗?还是我犯了个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-07 12:52:38

不同之处在于:Excel的STDEV计算样本标准差,而NumPy的std默认计算总体标准差(它的行为就像Excel的STDEVP)。

要使NumPy的std函数像Excel的STDEV那样运行,传递值ddof=1

代码语言:javascript
运行
复制
>>> np.std(s, ddof=1)
0.0051064766704396617

这使用样本方差来计算s的标准差(即除以n-1而不是n)。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34133939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档