rolling_window#
- gala.util.rolling_window(arr, window_size, stride=1, return_idx=False)[source]#
There is an example of an iterator for pure-Python objects in: http://stackoverflow.com/questions/6822725/rolling-or-sliding-window-iterator-in-python This is a rolling-window iterator Numpy arrays, with window size and stride control. See examples below for demos.
- Parameters:
- arrarray_like
Input numpy array.
- window_size
int
Width of the window.
- stride
int
(optional) Number of indices to advance the window each iteration step.
- return_idxbool (optional)
Whether to return the slice indices alone with the array segment.
Examples
>>> a = np.array([1, 2, 3, 4, 5, 6]) >>> for x in rolling_window(a, 3): ... print(x) [1 2 3] [2 3 4] [3 4 5] [4 5 6] >>> for x in rolling_window(a, 2, stride=2): ... print(x) [1 2] [3 4] [5 6] >>> for (i1, i2), x in rolling_window(a, 2, stride=2, return_idx=True): ... print(i1, i2, x) (0, 2, array([1, 2])) (2, 4, array([3, 4])) (4, 6, array([5, 6]))