连接两个多维数组

时间:2020-02-09 16:23:31

标签: python numpy

我有两个多维数组。我需要按照以下所示的任何一种格式进行连接。有关如何操作的任何想法?

A = np.array([[1,2,3,4],[5,6,7,8]])
B = np.array([[9,10],[11,12]])
C = np.concatenate(A,B) 

礼物:

错误:仅整数标量数组可以转换为标量索引

# out required :
C = ([[1,2,3,4,9,10]
      ,[5,6,7,8,11,12]]

#or
C = ([[1,2,3,4][9,10]
       ,[5,6,7,8][11,12]] #nested array i[0][0] = [1,2,3,4] and i[0][1] = [9,10] ...

2 个答案:

答案 0 :(得分:3)

您可以使用numpy.hstack

>>> np.hstack((A, B))
array([[ 1,  2,  3,  4,  9, 10],
       [ 5,  6,  7,  8, 11, 12]])

这会像(A | B | C)这样水平堆叠数组:

a00, a01, b00, b01, c00, c01
a10, a11, b10, b11, c10, c11

答案 1 :(得分:2)

如果您选中docs,则np.concatenate期望将数组序列作为第一个参数:

numpy.concatenate((a1,a2,...),axis = 0,out = None)

您还希望沿第一个轴堆叠两个数组,所以:

np.concatenate((A, B), axis=1)

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

您要避免像第二种情况那样具有嵌套数组,这是由于您沿同一维具有不同数量的值而产生的。这意味着失去了NumPy的所有矢量化功能。