首页 > 解决方案 > 在python中的numpy数组中查找具有条件的第一个元素的索引

问题描述

我正在尝试找到大于阈值的第一个元素的索引,如下所示:

index = 0
while timeStamps[index] < self.stopCount and index < len(timeStamps):
    index += 1

这可以在单行中完成吗?我发现:

index = next((x for x in timeStamps if x <= self.stopCount), 0)

我不确定这个表达式是做什么的,它似乎总是返回 0... 有人能指出错误并解释这个表达式吗?

标签: pythonpython-3.xnumpyindexing

解决方案


另一种选择是使用np.argmax有关详细信息,请参阅此帖子)。所以你的代码会变成这样

(timeStamps > self.stopCount).argmax()

需要注意的是,如果条件永远不满足,argmax则将返回 0。


推荐阅读