我有一些代码,不明白为什么应用np.std会提供两种不同的结果。不同的结果np.std()在熊猫和独立版本中使用时
import numpy as np
import pandas as pd
a = np.array([ 1.5, 6. , 7. , 4.5])
print 'mean value is:', a.mean()
print 'standard deviation is:', np.std(a)
下一页线应该基本上做同样的只是在一个数据帧大熊猫
base = datetime.datetime(2000, 1, 1)
arr = np.array([base + datetime.timedelta(days=i) for i in xrange(4)])
index_date = pd.Index(arr, name = 'dates')
data_gas = pd.DataFrame(a, index_date, columns=['value'], dtype=float)
mean_pandas = data_gas.resample('M').mean()
standard_deviation = data_gas.resample('M').apply(np.std)
print mean_pandas
print standard_deviation
从np.std的文档,我可以读:“...默认情况下ddof
是零。” (ddof = delta自由度)。
np.std(a)
提供除数为N(=数值)的标准差,...resample('M').apply(np.std)
表示除数为N减1时的标准偏差。造成这种差异的原因是什么?
你能分享你在每种情况下获得的价值吗? –
np.std(a)导致2.0767和standard_deviation送出2.3979 – paulchen
所以如果我理解正确,你的问题是“为什么'.apply(np.std)'使用ddof = 1计算,尽管'np.std'本身使用ddof = 0?”。这是正确的解释吗? –