如何在xarray的滚动窗口上应用自定义函数?

时间:2019-06-28 04:33:58

标签: python-xarray

如何在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之间存在兼容性问题。

0 个答案:

没有答案