You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数组B中的列插入到Numpy矩阵数组A中?

解决Numpy数组插入列的问题

先明确下数组的形状:

  • A是三维数组,形状为 (2, 4, 3),也就是2个包含4个3元素子数组的集合
  • B是二维数组,形状为 (2, 4),对应要给A中每个子数组的开头插入一列值

你要的效果是把B中每个位置的元素,作为对应A子数组的第一列。不用纠结numpy.insert,用np.concatenate拼接更直接,步骤如下:

  1. 先把B扩展成三维数组,让它的维度和A匹配:
    给B增加一个维度,变成(2, 4, 1),这样每个元素都成为单独的一列。

  2. 把扩展后的B和A在**第2个轴(axis=2)**上拼接,因为我们要在每个子数组的列方向上合并。

完整代码如下:

import numpy as np

# 定义原数组
A = np.array([[[1, 0, 0],[1, 1, 0],[0, 1, 0],[1, 1, 1]],[[1, 0, 0],[1, 1, 1],[0, 0, 1],[1, 0, 1]]])
B = np.array([[1,2,3,4],[5,6,7,8]])

# 扩展B的维度,匹配A的列维度
B_expanded = B[..., np.newaxis]
# 拼接数组
result = np.concatenate([B_expanded, A], axis=2)

print(result)

运行后输出的结果就是你要的目标数组:

[[[1 1 0 0]
  [2 1 1 0]
  [3 0 1 0]
  [4 1 1 1]]

 [[5 1 0 0]
  [6 1 1 1]
  [7 0 0 1]
  [8 1 0 1]]]

为什么numpy.insert不好用?因为insert更适合在单个轴上插入元素,但这里需要批量给每个子数组插入对应列,直接用insert需要做更多的维度调整和索引匹配,反而不如拼接简洁。

内容的提问来源于stack exchange,提问作者aqclsrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:32:10