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

如何使用numpy的where方法仅对矩阵单列应用条件获取对应行索引

numpy矩阵单列筛选获取行索引实现

核心实现逻辑

你之前出错的原因是直接将整个矩阵传入条件判断逻辑,导致numpy对所有列的元素都做了条件校验。只需要明确指定提取第一列做条件判断即可,核心代码如下:

# 仅对第一列做条件校验,返回符合条件的行索引
result_index = np.where((10 < arr[:, 0]) & (arr[:, 0] < 15))[0]

完整可运行示例

import numpy as np

# 你的原始矩阵
arr = np.array([
    [11., 5.],
    [24., 6.],
    [39., 12.],
    [14., 1.],
    [25., 12.]
])

# 执行筛选
mask = (10 < arr[:, 0]) & (arr[:, 0] < 15)
result_index = np.where(mask)[0]

print(result_index) # 输出 [0 3]

补充说明

  • 多维矩阵索引arr[:, 0]代表取所有行的第0列(也就是你需要的第一列),仅对这部分数据做条件判断,得到的布尔掩码长度和矩阵行数一致
  • numpy中多条件判断需要用&(且)、|(或)连接,每个条件都要用括号包裹,否则会触发运算符优先级错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:07