如何解决数组与列表中数据计算的细微差异
正如您在下面的代码中看到的那样,我以两种不同的方式计算“开放”列中数据的方差。唯一的区别是,在第二个版本中,我获取值,而不是包含值的列。为什么会导致不同的方差计算?
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 举报,一经查实,本站将立刻删除。