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

如何解决Numpy二维数组按双维度条件过滤时的布尔索引报错问题

错误原因

x[行筛选条件, 列筛选条件]语法中,逗号前后分别对应数组两个维度的筛选规则:

  • 第一个参数x[:, 0] <= -1.3是长度为100的布尔数组,匹配数组第0维(行维度,长度100)的筛选要求
  • 第二个参数x[:, 1] <= -0.9也是长度为100的布尔数组,但数组第1维(列维度)仅2个元素,长度不匹配触发索引错误。

正确代码

将两个行级筛选条件合并为一个布尔掩码,筛选同时满足两个条件的整行数据即可,注意&逻辑运算符优先级高于比较运算符,单个条件需要加括号:

# 写法1:拆分步骤便于调试
mask = (x[:, 0] <= -1.3) & (x[:, 1] <= -0.9)
filtered_x = x[mask]

# 写法2:一行简写
filtered_x = x[(x[:, 0] <= -1.3) & (x[:, 1] <= -0.9)]

结果验证

输出筛选后数组的形状可确认匹配需求:

print(filtered_x.shape)
# 预期输出为 (4, 2),对应左下角4个符合要求的点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:42:02