首页 > 解决方案 > 有没有办法连接两个不同维度的numpy数组?

问题描述

我正在使用一个深度学习模型,该模型试图将具有维度 (1,2) 的标签与 (25,25) 的 numpy 数组连接起来。我不确定是否可以获得 (627,0) 的维度,但是,模型摘要说这是它期望的输入形状。

我试图连接它们,但我得到错误“除了连接轴之外的所有输入数组维度必须完全匹配”,如预期的那样。

    x = np.concatenate((X[1], to_categorical(Y_train[1]))   

其中 X = (25,25) 且 Y_train 为 (1,0),使 to_categorical(Y_train[1]) 等于 (2,1)。

有没有办法用这些尺寸获得这个 (627, 0) 尺寸?

标签: pythonnumpy

解决方案


@Psidom对此有很好的回答:

假设您有一个一维数组和一个二维数组

您可以使用numpy.column_stack

np.column_stack((array_1, array_2))

它将一维数组隐式转换为二维,因此相当于np.concatenate((array_1, array_2[:,None]), axis=1).


a = np.arange(6).reshape(2,3)
b = np.arange(2)

a
#array([[0, 1, 2],
#       [3, 4, 5]])

b
#array([0, 1])

np.column_stack((a, b))
#array([[0, 1, 2, 0],
#       [3, 4, 5, 1]])

推荐阅读