我有两个多维数组。我需要按照以下所示的任何一种格式进行连接。有关如何操作的任何想法?
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] ...
答案 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的所有矢量化功能。