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

如何用Python(NumPy)从CSV二维整数数组提取列为一维数组?

提取二维数组的列转为一维数组

现有二维数组 T = [[11, 12, 5, 2], [15, 6, 1, 0], [10, 8, 12, 5], [12, 15, 8, 6]],需要编写Python代码将每一列提取为单独的一维数组,比如第一列得到 A = [11, 15, 10, 12],最终要提取全部4列。尝试了如下循环代码但存在问题:

for r in T;
    for c in r:
        A[r]= ....
        print()

方法1:使用zip()函数(最简便)

zip()可以直接把二维数组的行转成列,配合list()就能得到列表类型的列数组:

T = [[11, 12, 5, 2], [15, 6, 1, 0], [10, 8, 12, 5], [12, 15, 8, 6]]
# 转置后直接拆分出4列(返回的是元组,可转成列表)
col1, col2, col3, col4 = zip(*T)

# 转为列表类型(如果需要的话)
col1 = list(col1)
col2 = list(col2)
col3 = list(col3)
col4 = list(col4)

print(col1)  # 输出: [11, 15, 10, 12]
print(col2)  # 输出: [12, 6, 8, 15]
print(col3)  # 输出: [5, 1, 12, 8]
print(col4)  # 输出: [2, 0, 5, 6]

方法2:列表推导式

如果想手动控制提取逻辑,用列表推导式遍历每一行取对应列的元素:

T = [[11, 12, 5, 2], [15, 6, 1, 0], [10, 8, 12, 5], [12, 15, 8, 6]]

# 逐个提取每一列
col1 = [row[0] for row in T]
col2 = [row[1] for row in T]
col3 = [row[2] for row in T]
col4 = [row[3] for row in T]

修复你的循环代码

你原来的循环逻辑搞反了,应该遍历每一行,然后把每行对应列的元素追加到对应列表里:

T = [[11, 12, 5, 2], [15, 6, 1, 0], [10, 8, 12, 5], [12, 15, 8, 6]]
# 初始化四个空列表存每一列
A, B, C, D = [], [], [], []

for row in T:
    A.append(row[0])
    B.append(row[1])
    C.append(row[2])
    D.append(row[3])

print(A)  # 输出: [11, 15, 10, 12]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:01:15