使用时np.lib.stride_tricks.as_strided
,如何使用嵌套数组作为数据值来管理 2D 数组?有更好的吗高效的方法?
具体来说,如果我有一个 2Dnp.array
如下所示,其中一维数组中的每个数据项都是长度为 2 的数组:
[[1., 2.],[3., 4.],[5.,6.],[7.,8.],[9.,10.]...]
我想重塑滚动,如下所示:
[[[1., 2.],[3., 4.],[5.,6.]],
[[3., 4.],[5.,6.],[7.,8.]],
[[5.,6.],[7.,8.],[9.,10.]],
...
]
我看过类似的答案(例如这个滚动窗口函数 https://stackoverflow.com/a/6811241/6334309),但是在使用中我不能让内部数组/元组保持不变。
例如,窗口长度为3
: 我已经尝试过shape
of (len(seq)+3-1, 3, 2)
and a stride
of (2 * 8, 2 * 8, 8)
,但没有运气。也许我错过了一些明显的东西?
Cheers.
EDIT:使用 Python 内置函数很容易生成功能相同的解决方案(可以使用例如进行优化)np.arange
类似于 Divakar 的解决方案),但是,使用怎么样as_strided
?据我了解,这可以用于高效的解决方案吗?