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

咨询:如何从二维数组中提取特定列生成新数组

嘿,这个需求挺典型的,我给你几种Python下的实现方式,按需选择就行:

方法1:列表推导式(最简洁直观)

这是Python里处理这类需求最常用的写法,一行代码就能搞定:

original_arr = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
new_arr = [[row[0], row[2]] for row in original_arr]
print(new_arr)  # 输出结果:[[1,3],[5,7],[9,11],[13,15]]

简单解释下:遍历原数组的每一行row,直接取出该行索引为0(第一列)和2(第三列)的元素,组合成新的子列表,最终拼接成目标数组。

方法2:普通循环遍历(适合新手理解过程)

如果想一步步看清构建新数组的逻辑,可以用基础的for循环:

original_arr = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
new_arr = []
for row in original_arr:
    # 提取当前行需要的两列元素,生成新行
    new_row = [row[0], row[2]]
    # 将新行加入结果数组
    new_arr.append(new_row)
print(new_arr)

这种写法逻辑清晰,每一步操作都一目了然,适合刚接触二维数组的朋友上手理解。

方法3:numpy库实现(适合处理大型数组)

如果你需要处理大规模的多维数据,用numpy会更高效:

import numpy as np
original_arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
# 语法说明:[:, [0,2]] 表示取所有行,以及索引为0和2的列
new_arr = original_arr[:, [0, 2]].tolist()
print(new_arr)

numpy的切片语法在处理多维数组时非常灵活,而且运算性能远高于原生列表,适合数据量较大的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:13:56