我的数据中有3D阵列。我只想在Python中以重叠的间隔将3D数组2 x 2切片。
这里是2D的示例。
a = [1, 2, 3, 4;
5, 6, 7, 8]
此外,这也是我将数组2切成2后的预期结果。
[1, 2; [2, 3; [3, 4;
5, 6] 6, 7] 7, 8]
在3D模式下,
[[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]],
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]],
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]]
例如,(也许不完全是)
[1, 2 [2, 3
4, 5] 5, 6] ...
[1, 2 [2, 3
4, 5] 5, 6]
我认为,通过使用np.split,我可以对数组进行切片,但不会重叠。请给我一些有用的提示。
答案 0 :(得分:1)
您应该看看
git clone <url>
和numpy.ndarray.strides
遍历数组时在每个维中步进的字节元组。
数组numpy.lib.stride_tricks
中元素(i[0], i[1], ..., i[n])
的字节偏移为:
a
另请参阅numpy documentation
下面是使用跨步的二维示例:
offset = sum(np.array(i) * a.strides)
也请参阅Stackoverflow上的此question(此示例来自该地方),以增进您的理解。