滚动连接数组的numpy数组

时间:2017-04-11 10:23:28

标签: python arrays numpy concatenation

我想为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]]

1 个答案:

答案 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)]