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

如何复制NumPy二维数组中的第n行和第n列(以第3行/列为例)?

实现NumPy数组复制指定行和列的方法

要实现你需要的数组变换,可以分两步完成:先扩展每一行,插入重复的第3列元素;再插入重复的第3行,具体代码如下:

步骤1:导入NumPy并定义原数组

import numpy as np

a = np.array([
  [1, 2, 3, 1, 2, 3],
  [2, 3, 4, 2, 3, 4],
  [3, 4, 5, 3, 4, 5],
  [4, 5, 6, 4, 5, 6]
])

步骤2:扩展列,复制第3列到指定位置

观察目标数组的行结构:每一行是原行的前3列 + 第3列元素 + 后3列 + 第3列元素。我们可以用np.hstack拼接实现:

# 提取第3列(索引为2,NumPy从0开始计数),保持列向量形式
col_dup = a[:, 2:3]
# 拼接生成扩展列后的数组
expanded_cols = np.hstack([a[:, :3], col_dup, a[:, 3:], col_dup])

步骤3:插入重复的第3行

目标数组在原第3行(索引2)后新增了一行相同的内容,用np.vstack拼接即可:

# 提取要复制的行
row_dup = expanded_cols[2:3, :]
# 拼接生成最终数组b
b = np.vstack([expanded_cols[:3, :], row_dup, expanded_cols[3:, :]])

验证结果

运行后b的值与你期望的完全一致:

print(b)
# 输出:
# [[1 2 3 3 1 2 3 3]
#  [2 3 4 4 2 3 4 4]
#  [3 4 5 5 3 4 5 5]
#  [3 4 5 5 3 4 5 5]
#  [4 5 6 6 4 5 6 6]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:26:05