特殊阵列合并或重塑(例如将两个梳子推在一起)



我想使用numpy作为bellow

合并两个(或更多(数组
a=
[[1 3]
[5 7]
[9 11]
[13 15]]
b=
[[2 4]
[6 8]
[10 12]
[14 16]]

进入

Result=
[[1 2]
[3 4]
[5 6]
[7 8]
[9 10]
[11 12]
[13 14]
[15 16]]

我诚实地搜索了整个网络并测试了所有Numpy家族,如果您给我一个线索,我会很感激。

看起来您想将两个数组中的元素交织在一起,无论嵌套如何。然后,您可以首先将它们拉开,然后拉链:

a=[[1, 3],[5, 7], [9, 11], [13, 15]]
b=[[2, 4],[6, 8],[10, 12],[14, 16]]
a_1d = np.ravel(a)
b_1d = np.ravel(b)
c = np.array(list(zip(a_1d,b_1d)))
print(c)

注意:此答案是针对问题的较旧编辑的。


对于小阵列,您应该首先将它们串联,然后执行标准重塑。

>>> a = [[1, 2, 3, 4], [5, 6, 7, 8]]
>>> b = [[9, 10, 11, 12], [13, 14, 15, 16]]
>>> a + b
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
>>> result = np.reshape(a + b, (8, -1))
>>> print(result)
[[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]
 [11 12]
 [13 14]
 [15 16]]
>>>

对于较大的

,创建一个numpy ndarrays应该更有效。同样,首先加入。

>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
>>> b = np.array([[9, 10, 11, 12], [13, 14, 15, 16]])
>>> result = np.reshape(np.concatenate([a, b]), (8, -1))
>>> print(result)
array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 9, 10],
       [11, 12],
       [13, 14],
       [15, 16]])

最新更新