具有重叠的子阵列划分

时间:2016-10-27 05:42:25

标签: python arrays numpy slice

我有numpy数组[1 2 3 4 5 6 7 8 9 10 11 12]。想要将大小为6的子阵列分成3个重叠 [1 2 3 4 5 6] [4 5 6 7 8 9] [7 8 9 10 11 12]在上述情况中。

我想把它推广。 说我有一千个大小的数组。我希望得到100个大小的子阵列,重叠50个。

此外,重叠大小始终是子阵列大小的一半。

1 个答案:

答案 0 :(得分:2)

试试这个:

>>> size = 6
>>> overlap = 3
>>> z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> zip(*[z[i:] for i in range(size)])[::overlap]
[(1, 2, 3, 4, 5, 6), (4, 5, 6, 7, 8, 9), (7, 8, 9, 10, 11, 12)]