[Numpy-discussion] Functions for stride manipulations

Sebastian Berg sebastian at sipsolutions.net
Sun Aug 19 18:43:08 EDT 2012


Inspired by an existing PR into numpy, I created two functions based on
stride_tricks which I thought might be useful inside numpy. So if I get
any feedback/pointers, I would add some tests and create a PR.

The first function rolling_window is to create for every point of the
original array, a view of its neighbourhood in arbitrary dimensions with
some options to make it easy to use.
For example for a 3 dim array:
rolling_window(a, (3,3,3), asteps=(3,3,3)).max((3,4,5))
Gives the maximum for all non-overlapping 3x3x3 subarrays and:
rolling_window(a, 3, axes=0).max(-1) would create the rolling maximum
over all 3 successive values along the 0th axis.

Plus a function permute_axes which allows to give a tuple for switching
axes and can also merge them. A (10, 4, 3) shaped array would give:
permute_axes(a, (2, 1, 0)).shape -> (3, 4, 10)
permute_axes(a, (1, (0, 2))).shape -> (4, 30)
A copy is created when necessary, this basically allows to do multiple
swap_axes and a reshape in a single call.

I hope this might be useful...


-------------- next part --------------
A non-text attachment was scrubbed...
Name: stride_tricks.py
Type: text/x-python
Size: 10096 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120820/bb1faf5d/attachment.py>

More information about the NumPy-Discussion mailing list