我正在学习 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
3 回答

三国纷争
TA贡献1804条经验 获得超7个赞
您可以使用 numpy.vstack
In [22]: import numpy as np
In [23]: a = np.array([[1,2], [3,4]])
In [24]: b = np.array([6,7])
In [25]: np.vstack((a.T, b)).T
Out[25]:
array([[1, 2, 6],
[3, 4, 7]])

绝地无双
TA贡献1946条经验 获得超4个赞
In [868]: a = np.array([[1,2],[3,4]]); b = np.array([6,7])
In [869]: a.shape, b.shape
Out[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有效使用,您必须了解尺寸,以及如何在需要时调整它们。
添加回答
举报
0/150
提交
取消