将两个数组连接成一个新数组

Concatenate two arrays into a new array

我有两个数组,

A = np.array([[1,2,3],[4,5,6]])
b = np.array([100,101])

我想连接它们,以便 b 在右侧添加一列,这样我们就有了一个新数组 A | b,类似于:

1 2 3 100

4 5 6 101

我正在尝试以这种方式连接:

new = np.concatenate((A, b), axis=1)

但是我得到下一个错误:

ValueError: all the input arrays must have the same number of dimensions, but the array at index 0 has 2 dimension(s), and the array at index 1 has 1 dimension(s)

如何连接这两个数组?

您可以使用 column_stack:

>>> np.column_stack((A, b))

array([[  1,   2,   3, 100],
       [  4,   5,   6, 101]])

它负责 b 不是 2D。


为了使 concatenate 工作,我们手动制作形状 (2, 1):

b
>>> np.concatenate((A, b[:, np.newaxis]), axis=1)

array([[  1,   2,   3, 100],
       [  4,   5,   6, 101]])

您也可以转置 A 进行垂直堆叠,然后将其转置回去 np.vstack((A.T,b)).T