如何在xarray DataArray的滚动窗口上应用自定义函数?
例如,如何在DataArray上实现以下目标?
import pandas as pd
from scipy import stats
d = pd.DataFrame(np.random.rand(100,3))
d.rolling(10).apply(stats.median_absolute_deviation, raw=True)
编辑: 我尝试过
d = xr.DataArray(np.random.rand(100,3))
d.rolling(dim_0=10).reduce(np.mean)
,并且有效。但是对于stats.median_absolute_deviation
,它会引发错误。
d = xr.DataArray(np.random.rand(100,3))
d.rolling(dim_0=10).reduce(stats.median_absolute_deviation)
“ ValueError:维度('dim_0','dim_1')的长度必须与数据维度的长度相同,ndim = 0”
编辑2
我使用mad
包中的statsmodels
来工作了:
d = xr.DataArray(np.random.rand(100,3))
d.rolling(dim_0=10).reduce(statsmodels.robust.scale.mad)
所以我想scipy.stats.median_absolute_deviation
和xarray之间存在兼容性问题。