【问题标题】:numpy standard deviation does not give the same result as scipy stats standard deviationnumpy 标准差与 scipy stats 标准差的结果不同
【发布时间】:2022-11-01 22:02:23
【问题描述】:

Scipy 和 numpy 标准差方法给出的结果略有不同。我不明白为什么。谁能给我解释一下?

这是一个例子。

import numpy as np
import scipy.stats
ar = np.arange(20)
print(np.std(ar))
print(scipy.stats.tstd(ar))

返回

5.766281297335398
5.916079783099616

【问题讨论】:

    标签: python numpy scipy statistics


    【解决方案1】:

    前段时间在我的脑海中..为了获得相同的价值观

    import numpy as np
    import scipy.stats
    ar = np.arange(20)
    print(np.std(ar, ddof=1))
    print(scipy.stats.tstd(ar))
    

    输出 #

    5.916079783099616
    5.916079783099616
    

    【讨论】:

      【解决方案2】:

      使用np.std(),您正在计算标准偏差:

      x = np.abs(ar - ar.mean())**2
      std = np.sqrt(np.sum(x) / len(ar)) # 5.766281297335398
      

      但是,使用 scipy.stats.tstd 您正在计算修剪后的标准差:

      x = np.abs(ar - ar.mean())**2
      std = np.sqrt(np.sum(x) / (len(ar) - 1)) # 5.916079783099616
      

      【讨论】:

        猜你喜欢
        • 2020-10-14
        • 2014-02-27
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 2017-01-15
        • 2020-04-15
        • 1970-01-01
        相关资源
        最近更新 更多