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

如何在NumPy数组中筛选第三列值为0或1的特定行?

筛选NumPy数组中第三列为0或1的行

嘿,这事儿用NumPy的布尔索引就能轻松解决,给你两种实用的方法:

方法一:逻辑条件组合

先明确:NumPy数组是从0开始索引的,所以你说的“第三列”对应索引2。我们可以先提取第三列,再创建布尔掩码标记符合条件的行,最后用掩码过滤数组:

import numpy as np

# 你已经加载好的数组
data_np = np.loadtxt("ex2data1.txt", delimiter=',')

# 提取所有行的第三列
third_column = data_np[:, 2]
# 创建布尔掩码:第三列等于0 或者 等于1(注意用NumPy的|,不能用Python原生的or)
mask = (third_column == 0) | (third_column == 1)
# 筛选出符合条件的行
filtered_rows = data_np[mask]

方法二:用np.isin简化代码

如果觉得上面的步骤有点繁琐,np.isin可以帮你一步到位,直接检查第三列的值是否在指定的列表[0,1]中:

import numpy as np

data_np = np.loadtxt("ex2data1.txt", delimiter=',')
# 直接筛选第三列属于[0,1]的行
filtered_rows = data_np[np.isin(data_np[:, 2], [0, 1])]

两种方法都能得到你想要的结果,第二种代码更简洁,适合快速实现。你可以打印filtered_rows验证一下,就是所有第三列是0或1的行啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:33:29