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

从NumPy数组首列查找值3的最后索引的两种实现方法

解决方法:找出NumPy数组首列值为3的最后一个索引

针对你需要处理的这个NumPy数组场景,我整理了两种可行的实现方法,帮你快速找到首列值为3的最后一个索引:

首先先明确咱们的示例数组(这里假设A/B/C/D/E为字符串类型):

import numpy as np

a = np.array([[1, 'A', 3.00, 4, 5], 
              [2, 'B', 4.00, 5, 6], 
              [3, 'C', 5.00, 6, 7], 
              [3, 'D', 6.00, 7, 8], 
              [3, 'E', 7.00, 8, 9]], dtype=object)

方案1:使用for循环遍历

这种方法逻辑直观,适合刚接触NumPy的朋友理解:

indx = []
for i in range(len(a)):
    # 转成int是为了统一类型比较,避免因首列元素类型差异导致判断出错
    if int(a[i,0]) == int(3):
        indx.append(i)
# 取收集到的索引列表的最后一个元素
indx = indx[-1]

简单来说就是逐个检查每一行的首列值,把符合条件的索引存起来,最后取列表的最后一项即可。

方案2:使用NumPy的where函数(更高效)

如果你处理的是大规模数组,用NumPy内置的向量化操作会比循环快很多,代码也更简洁:

# 获取首列所有等于3的索引,where返回的是元组,取第一个元素就是索引数组
indices = np.where(a[:, 0] == 3)[0]
# 直接取索引数组的最后一个值
indx = indices[-1]

这里a[:, 0]是取出数组的首列,np.where()会返回所有满足条件的位置索引,我们只需要取最后一个即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:04:44