【发布时间】:2018-01-25 14:19:38
【问题描述】:
假设我有一个这样的数组:
array([1, 2, 3, 4, 5, 5, 7, 8, 9, 10])
我想改成
array([1, 2, 3, 4]), array([3, 4, 5, 6]), array([5, 6, 7, 8]), array([7, 8, 9, 10])
这里的窗口大小为4,步长为2。
如何在 Python 函数中执行此操作?
【问题讨论】:
-
看起来像基本的 numpy 用法。你尝试了什么?您显然需要创建新数组,所以您是否尝试了一个列表理解,其中 start-index 是由 python 的 range() 和 step 控制的?
-
您想要四个独立的阵列而不是单个 4x4 阵列吗?后者可能更方便,只是
as_strided的一个应用。 -
我想要后者
-
对于这个用例的一些更一般的 as_strided 示例:skimage's view_as_windows。
标签: arrays numpy sliding-window