我想为numpy数组数组实现滚动连接函数。例如,如果我的numpy数组如下:
[[1.0]
[1.5]
[1.6]
[1.8]
...
...
[1.2]
[1.3]
[1.5]]
然后,对于窗口大小为3,我的函数应返回:
[[1.0]
[1.0 1.5]
[1.0 1.5 1.6]
[1.5 1.6 1.8]
...
...
[1.2 1.3 1.5]]
输入数组也可以包含不同形状的元素。例如,如果输入为:
[[1.0]
[1.5]
[1.6 1.7]
[1.8]
...
...
[1.2]
[1.3]
[1.5]]
然后输出应该是:
[[1.0]
[1.0 1.5]
[1.0 1.5 1.6 1.7]
[1.5 1.6 1.7 1.8]
...
...
[1.2 1.3 1.5]]
答案 0 :(得分:1)
首先,将您的数组放入列表中。在numpy
中有一个数组数组没有任何意义。
l = arr.tolist() #l is a list of arrays
现在使用list comprehension获取元素,并将它们与np.r_
l2 = [np.r_[tuple(l[max(i - n, 0):i])] for i in range(1, len(l)+1)]