微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数组与列表中数据计算的细微差异

如何解决数组与列表中数据计算的细微差异

正如您在下面的代码中看到的那样,我以两种不同的方式计算“开放”列中数据的方差。唯一的区别是,在第二个版本中,我获取值,而不是包含值的列。为什么会导致不同的方差计算?

apple_prices = pd.read_csv('apple_prices.csv')

print(apple_prices['open'].values.var())
#prints 102.22564310059172

print(apple_prices['open'].var())
#prints 103.82291877403847

解决方法

之所以不同,是因为ddof的默认numpy.ndarray.var(自由度增量)为1,而ddof的默认import pandas as pd import numpy as np np.random.seed(0) x = pd.Series(np.random.rand(100)) print(x.var(ddof=1)) # 0.08395738934787107 print(x.values.var(ddof=1)) # 0.08395738934787107 为0。手动设置会产生相同的结果:

git clone <HTTP address of repo>

请参阅以下文档:
pandas.Series.var
numpy.var

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。