python - 在 Python 中连接二维 numpy 数组

标签 python arrays concatenation numpy-ndarray

我想连接这两个数组

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]]

尝试使用连接

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

出现错误:

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

尝试使用追加

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,)

(stackoverflow 的新手,抱歉,如果我没有格式化好)

最佳答案

您可以为此使用 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]),以便附加的矢量是垂直的。

关于python - 在 Python 中连接二维 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67109855/

相关文章:

python - 需要帮助在 PyGame 中使用 for 循环加载图像

python - 如何仅连接字符串中的连续数字?

powershell - 将列表中的行添加到第二个列表Powershell中的行

c++ - C++中改变数组的值

c# - 获取在数组中的文本框中输入的数字

MySQL CONCAT() 返回不可读的文本

python - Omnet++简单模块C++代码中python嵌入式代码中的Segmentation fault错误

python - 沿动态指定的轴切片 numpy 数组

python - 使用 OpenCV 和 Python 从图像中识别和裁剪文本的问题

c++ - 通过引用传递数组