如何筛选包含特定值或多个值的NumPy矩阵行?
提取NumPy数组中包含1的行
给定如下NumPy数组:
import numpy as np m = np.array([[1, 2, 3], [2, 4, 3], [1, 2, 1]])
需要筛选出任意列中至少包含一个1的行,最终目标结果为:
np.array([[1, 2, 3], [1, 2, 1]])
实现代码
# 生成布尔索引:标记每行是否存在1 has_one = (m == 1).any(axis=1) # 筛选符合条件的行 result = m[has_one] print(result)
代码说明
m == 1:生成与原数组形状一致的布尔数组,每个元素对应原数组位置是否为1.any(axis=1):沿行维度(axis=1)判断每行是否存在至少一个True,返回一维布尔数组m[has_one]:用布尔数组索引原数组,直接提取符合条件的行
内容的提问来源于stack exchange,提问作者Fredrik
相关产品推荐
相关产品推荐

