尝试连接两个不同维度的数组

我正在学习 python,我有 2 个数组:


a = [[ 1 , 2 ]

      [3,  4]]

b = [ 6,7]

当我打印形状时,我得到:


a.shape = (2,2)

b.shape = (2,)

希望结果是:


c = [[ 1, 2 , 6]

     [3, 4, 7]]

我试过了


c = a + b


c = np.concatenate((a, b),axis=None) #tried axis=0, axis=1

我不断收到错误,例如


ValueError: all the input arrays must have same number of dimensions


缥缈止盈
浏览 210回答 3
3回答

三国纷争

您可以使用 numpy.vstackIn [22]: import numpy as npIn [23]: a = np.array([[1,2], [3,4]])In [24]: b = np.array([6,7])In [25]: np.vstack((a.T, b)).TOut[25]:array([[1, 2, 6],       [3, 4, 7]])

绝地无双

In [868]: a = np.array([[1,2],[3,4]]); b = np.array([6,7])In [869]: a.shape, b.shapeOut[869]: ((2, 2), (2,))b有 1 个维度,它需要 2 个来匹配a:In [870]: np.reshape(b,(2,1))Out[870]: array([[6],       [7]])现在concatenate工作:In [871]: np.concatenate((a, np.reshape(b,(2,1))), axis=1)Out[871]: array([[1, 2, 6],       [3, 4, 7]])np.vstack之所以有效,是因为它会根据需要添加新的初始维度。我添加了一个尾随维度。从长远来看,要concatenate有效使用,您必须了解尺寸,以及如何在需要时调整它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python