python - pandas 与 numpy 的不同标准

标签 python pandas numpy

pandas 和 numpy 的标准差不同。为什么以及哪一个是正确的? (相对差异是 3.5%,这不应该来自四舍五入,我认为这很高)。

示例

import numpy as np
import pandas as pd
from StringIO import StringIO

a='''0.057411
0.024367
 0.021247
-0.001809
-0.010874
-0.035845
0.001663
0.043282
0.004433
-0.007242
0.029294
0.023699
0.049654
0.034422
-0.005380'''


df = pd.read_csv(StringIO(a.strip()), delim_whitespace=True, header=None)

df.std()==np.std(df) # False
df.std() # 0.025801
np.std(df) # 0.024926

(0.024926 - 0.025801) / 0.024926 # 3.5% relative difference

我使用这些版本:

pandas '0.14.0'
numpy '1.8.1'

最佳答案

简而言之,两者都不是“不正确的”。 Pandas 使用 unbiased estimator (N-1 在分母中),而 Numpy 默认没有。

要使它们的行为相同,请将 ddof=1 传递给 numpy.std() .

如需进一步讨论,请参阅

关于python - pandas 与 numpy 的不同标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984178/

相关文章:

python - OpenERP树形结构缩进和颜色

python - Matplotlib - 尽管在 font_manager 中,但当前字体中缺少字形 8722

python - 如何使用 pandas 数据框有效更新 mysql 表?

python - 按时间合并 pandas 数据框和另一列

python - 计算 pandas 数据帧行对中的匹配数

python - 从 numpy 数组中删除条目

python - 为什么 Scipy 的 KDTree 这么慢?

python - 使用 `python -m jsontool` 从命令行验证 JSON 给出 'No JSON object could be decoded'

python - numpy 数组中值数组的位置

python - numpy 序列的向量化分配