考虑以下数组:
arr = np.arange(15).reshape(5,3)
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]]
您可以将第0维视为给定时间步长的时间和第1维。我想在其上创建一个滚动窗口,即随时间变化的序列,比如长度为3
召唤
np.lib.stride_tricks.sliding_window_view(arr, (3,3))
导致
[[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]]]
[[[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]]
[[[ 6 7 8]
[ 9 10 11]
[12 13 14]]]]
正如所料
唯一让我困惑的是它的形状,它是(3,1,3,3),而我最初预期它是(3,3,3)。我想它可能是关于应用窗口的轴,但在修改axis参数时,我无法获得所需的形状。有人能解释吗?有没有其他方法可以在不改变结果数组形状的情况下获得三阶形状
^{} 将始终返回窗口形状上方2维的视图:
但是,在这种情况下,对于给定的窗口大小,y上的窗口数将为1,请使用axis=(0,0)并从返回的数组中获取第一个值,以获得所需的结果,而无需进行额外的整形或替换:
b
:相关问题 更多 >
编程相关推荐