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

时间:2019-03-28 09:47:34

标签: python arrays python-3.x numpy

假设我有一个数组this.webView.url = this.editBox.string;

a

我希望第一个值的索引大于65(即a = np.array([50,49,47,55,68,70,65]) )。在Numpy中执行此任务的最快方法是什么(因为我的实际数据集要大得多)?

2 个答案:

答案 0 :(得分:0)

argmax将找到第一个True的索引, 试试这个np.argmax(a>65)

答案 1 :(得分:0)

我建议使用numba及其装饰器。多亏了这个库,您在使用普通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)(通常要少得多)而言,此选项比注释中建议的方法要好。