小编Mom*_*omo的帖子

pandas rolling_std和np.std在数组窗口上的区别

我有一些关于pandas.stats.moments的rolling_std函数的问题.奇怪的是,与应用于数组滚动窗口的numpy.std函数相比,使用此功能得到的结果不同.

这是重现此错误的代码:

# import the modules
import numpy as np
import pandas as pd

# define timeseries and sliding window size
timeseries = np.arange(10)
periods = 4

# output of different results
pd.stats.moments.rolling_std(timeseries, periods)
[np.std(timeseries[max(i-periods+1,0):i+1]) for i in np.arange(10)]
Run Code Online (Sandbox Code Playgroud)

产量:

#pandas
array([        nan,         nan,         nan,  1.29099445,  1.29099445,
    1.29099445,  1.29099445,  1.29099445,  1.29099445,  1.29099445])
#numpy
[0.0, 0.5, 0.81649658092772603, 1.1180339887498949, 1.1180339887498949, 1.1180339887498949, 1.1180339887498949, 1.1180339887498949, 1.1180339887498949, 1.1180339887498949]
Run Code Online (Sandbox Code Playgroud)

如果我手工计算这个结果似乎是正确的.有没有人遇到这个或有解释?

python numpy pandas

5
推荐指数
1
解决办法
2629
查看次数

标签 统计

numpy ×1

pandas ×1

python ×1