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

Numpy如何按多列条件筛选a=1、b=2且c=3、d=4的数组行

Numpy 多条件按列筛选数组行的实现方法

你可以通过多条件布尔索引实现需求,两种常用写法如下:

写法1:直接布尔索引(更简洁,无需调用np.where)

# 各列对应索引:a列=0,b列=1,c列=2,d列=3
# 多条件用&连接,每个判断条件必须加小括号避免运算符优先级错误
filtered_rows = a[(a[:,0] == 1) & (a[:,1] == 2) & (a[:,2] == 3) & (a[:,3] == 4)]
print(filtered_rows)

写法2:搭配np.where的版本

xx2 = a[np.where((a[:,0] == 1) & (a[:,1] == 2) & (a[:,2] == 3) & (a[:,3] == 4))]
print(xx2)

以上两种写法的输出结果一致,符合要求的行如下:

[[ 1.    2.    3.    4.    1.    9.935]
 [ 1.    2.    3.    4.    0.9   9.403]
 [ 1.    2.    3.    4.    0.8   8.785]]

注意事项

  • Numpy多条件组合时,逻辑与不能使用Python原生的and关键字,必须使用按位与运算符&;如果需要逻辑或使用|,逻辑非使用~
  • 每个独立的判断条件必须用小括号包裹,否则会因为运算符优先级问题触发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:45:04