xarray.Variable.rolling_window#
- Variable.rolling_window(dim, window, window_dim, *, center=False, fill_value=<NA>, **kwargs)[source]#
Make a rolling_window along dim and add a new_dim to the last place.
- Parameters:
dim (
str
) – Dimension over which to compute rolling_window. For nd-rolling, should be list of dimensions.window (
int
) – Window size of the rolling For nd-rolling, should be list of integers.window_dim (
str
) – New name of the window dimension. For nd-rolling, should be list of strings.center (
bool
, default:False
) – If True, pad fill_value for both ends. Otherwise, pad in the head of the axis.fill_value – value to be filled.
**kwargs – Keyword arguments that should be passed to the underlying array type’s
sliding_window_view
function.
- Returns:
Variable that is a view
ofthe original array with a added dimension of
size w.
The return dim (
self.dims + (window_dim
,)
)The return shape (
self.shape + (window
,)
)
See also
numpy.lib.stride_tricks.sliding_window_view
,dask.array.lib.stride_tricks.sliding_window_view
Examples
>>> v = Variable(("a", "b"), np.arange(8).reshape((2, 4))) >>> v.rolling_window("b", 3, "window_dim") <xarray.Variable (a: 2, b: 4, window_dim: 3)> Size: 192B array([[[nan, nan, 0.], [nan, 0., 1.], [ 0., 1., 2.], [ 1., 2., 3.]], [[nan, nan, 4.], [nan, 4., 5.], [ 4., 5., 6.], [ 5., 6., 7.]]])
>>> v.rolling_window("b", 3, "window_dim", center=True) <xarray.Variable (a: 2, b: 4, window_dim: 3)> Size: 192B array([[[nan, 0., 1.], [ 0., 1., 2.], [ 1., 2., 3.], [ 2., 3., nan]], [[nan, 4., 5.], [ 4., 5., 6.], [ 5., 6., 7.], [ 6., 7., nan]]])