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_sizeint

Width of the window.

strideint (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]))