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

如何用Python获取数组中大于5的元素的索引位置?

获取数组中符合条件元素的原始索引

假设你使用的是NumPy数组(因为原生Python列表不支持scores > min_score_thresh这种布尔索引语法),下面两种方法可以帮你快速获取大于5的元素在原数组中的位置:

方法1:用np.where()直接定位

这是最直接的方式,np.where()会返回满足条件的元素的索引数组:

import numpy as np

scores = np.array([2.619, 3.3, 9.67, 0.1, 6.7, 3.2])
min_score_thresh = 5

# 获取符合条件的索引,[0]是因为where返回的是元组,取第一个元素就是索引数组
x = np.where(scores > min_score_thresh)[0]
# 如果需要转为普通Python列表,加上tolist()
x = x.tolist()
print(x)  # 输出: [2, 4]

方法2:借助布尔掩码的nonzero()方法

先生成一个布尔掩码(标记哪些元素符合条件),再通过nonzero()提取掩码中True对应的索引:

import numpy as np

scores = np.array([2.619, 3.3, 9.67, 0.1, 6.7, 3.2])
min_score_thresh = 5

# 生成布尔掩码:符合条件的位置为True,否则为False
mask = scores > min_score_thresh
# 提取True对应的索引
x = mask.nonzero()[0].tolist()
print(x)  # 输出: [2, 4]

补充说明

  • 两种方法得到的结果默认是NumPy数组,用tolist()可以转换成你需要的普通Python列表格式
  • 索引是从0开始计数的,和你预期的[2,4]完全匹配:9.67在原数组的第3个位置(索引2),6.7在第5个位置(索引4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:48:51