gpt4 book ai didi

arrays - 如何创建一个与 numpy 数组重叠 50% 的滑动窗口?

转载 作者:行者123 更新时间:2023-12-02 00:28:32 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Taking subarrays from numpy array with given stride/stepsize

(3 个回答)


4年前关闭。




假设我有一个这样的数组:

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.lib.stride_tricks.as_strided

def window(a, w = 4, o = 2, copy = False):
sh = (a.size - w + 1, w)
st = a.strides * 2
view = np.lib.stride_tricks.as_strided(a, strides = st, shape = sh)[0::o]
if copy:
return view.copy()
else:
return view

Out[]:
array([[ 1, 2, 3, 4],
[ 3, 4, 5, 6],
[ 5, 6, 7, 8],
[ 7, 8, 9, 10]])

一定要设置 copy = True如果您想写入窗口数组,则它是一个内存共享 View 。

关于arrays - 如何创建一个与 numpy 数组重叠 50% 的滑动窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com