2017-04-11 51 views
0

我想为数组的numpy数组实现滚动连接函数。例如,如果我的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

输入将它们连接起来看起来并不像一个数组。 – Divakar

+0

编辑问题 –

+0

如果你愿意用NaNs /其他无效说明符来保持2D形状的数组,请看看这里 - http://stackoverflow.com/questions/40683601/creating-sliding-windows- of-nan-padded-elements-off-1d-numpy-array – Divakar

回答

1

首先,让你的数组列表。在numpy中没有数组的数组。

l = arr.tolist()   #l is a list of arrays 

现在使用列表解析,让您的元素,并与np.r_

l2 = [np.r_[tuple(l[max(i - n, 0):i])] for i in range(1, len(l)+1)] 
+0

这有效。谢谢。 –