在Python中连接二维Numpy数组

5 浏览
0 Comments

在Python中连接二维Numpy数组

我想要将这两个数组连接起来

a = np.array([[1,2,3],[3,4,5],[6,7,8]])  
b = np.array([9,10,11])

使它们成为一个数组

a = [[1,2,3,9],[3,4,5,10],[6,7,8,11]]

尝试使用concatenate函数

for i in range(len(a)):
  a[i] = np.concatenate(a[i],[b[i]])

然后出现了一个错误:

TypeError: 'list' object cannot be interpreted as an integer

再尝试使用append函数

for i in range(len(a)):
  a[i] = np.append(a[i],b[i])

又出现了一个错误:

ValueError: could not broadcast input array from shape (4,) into shape (3,)

(我是stack overflow的新手,如果格式有误请见谅)

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以像这样做:

np.append(a,b.reshape(-1,1),axis=1)

0
0 Comments

你可以使用hstack和向量广播来实现:

a = np.array([[1,2,3],[3,4,5],[6,7,8]])  
b = np.array([9,10,11])
res = np.hstack((a, b[:,None]))
print(res)

输出:

[[ 1  2  3  9]
 [ 3  4  5 10]
 [ 6  7  8 11]]

请注意,你不能使用concatenate,因为数组的形状不同。 hstack可以在多维数组中水平堆叠,因此在此处仅添加一个新行。需要进行广播操作(b [:,None]),以便附加的向量是垂直的。

0