如何基于已有数组生成新数组:排除第三列值为0的行
数组处理需求实现方案
以下提供两种常用场景的实现方法:
1. Python 原生列表实现
无需依赖第三方库,直接用列表推导式完成:
# 定义原数组 a = [[10,12,0],[11,54,1],[17,34,1],[65,98,0]] # 生成目标数组 b = [row[:2] for row in a if row[2] != 0]
运行后得到的b即为预期结果:[[11, 54], [17, 34]]
2. NumPy 实现(适合大规模数值运算场景)
如果你使用NumPy处理数组,可以用布尔索引更高效完成:
import numpy as np # 定义原数组为numpy数组格式 a = np.array([[10,12,0],[11,54,1],[17,34,1],[65,98,0]]) # 筛选符合条件的行并取前两列,加tolist()可转回原生Python列表 b = a[a[:, 2] != 0, :2].tolist()
内容的提问来源于stack exchange,提问作者gemini
相关产品推荐
相关产品推荐

