Python 在Numpy中查找下一个大于阈值的值的索引

Python 在Numpy中查找下一个大于阈值的值的索引,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,假设我有一个数组a a = np.array([50,49,47,55,68,70,65]) 我想要大于65的第一个值的索引(即4)。在Numpy中执行此任务的最快方法是什么(因为我的实际数据集要大得多)?argmax将找到第一个True的索引, 试试这个np.argmax(a>65)我建议使用和它的装饰器。多亏了这个库,您可以在使用普通Python时获得比numpy更好的性能分数(或与标准相当) 在您的情况下,可能是: import numba @numba.njit def find_g

假设我有一个数组
a

a = np.array([50,49,47,55,68,70,65])

我想要大于65的第一个值的索引(即
4
)。在Numpy中执行此任务的最快方法是什么(因为我的实际数据集要大得多)?

argmax将找到第一个True的索引, 试试这个
np.argmax(a>65)
我建议使用和它的装饰器。多亏了这个库,您可以在使用普通Python时获得比numpy更好的性能分数(或与标准相当)

在您的情况下,可能是:

import numba

@numba.njit
def find_greater(array, threshold: int):
    for i in range(len(array)):
        if array[i] > threshold:
            return i

这个选项在时间复杂度方面,最大
O(n)
(通常要少得多)比评论中建议的方法要好。

所以,
(a>65)。argmax()
?@coldspeed什么是时间复杂度?线性?你的数组没有排序,你不能指望有更好的结果。@coldspeed为什么要关闭?他想要最好的性能和时间复杂度,这是不同的情况。另外,您最多可以使用N个操作,而不是像
argmax
@SzymonMaszke那样至少使用N个操作,我没有关闭它吗?你为什么打我?