当前位置: 首页 > 知识库问答 >
问题:

查找下一个大于阈值的值的索引,单位为Numpy[重复]

田巴英
2023-03-14

假设我有一个数组a

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

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

共有2个答案

陆建木
2023-03-14

我建议使用numba,它是decorators。多亏了这个库,您可以在使用普通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)(通常要小得多)方面优于注释中建议的方法。

巫马泰
2023-03-14

Argmax会找到第一个True的索引,尝试这个np.argmax(a

 类似资料:
  • 我需要找到高于指定阈值的的第一个和最后一个元素。我找到了以下解决方案,这是有效的,但它看起来有点令人费解。有没有更简单/更蟒蛇的方式?

  • 我有一个2D麻木阵列: 如何获取大于的元素的索引? 现在,我正在做以获取每个最大值的索引,结果是:。我如何实现上述操作?

  • 问题内容: 假设我有 有没有一种有效的numpy方法来查找值变化的每个索引?例如,我想要一些结果, 如果某些numpy例程无法做到这一点,那么在python中执行此操作的快速方法是什么?推荐给一些很好的numpy教程对我来说也很有用,因为我是个numpy初学者。 问题答案: 您可以通过将每个元素与其相邻元素进行比较来以numpy的形式获得此功能; 要获取索引,请使用“ where”功能 在这里,您

  • 我有一个向量,想找到第一个大于100的值的位置。

  • 问题内容: 我有一个数组: 我希望在此数组中找到多个值的行的索引: 对于此示例,我想要一个类似的结果: 我有一个执行此操作的代码,但我认为它过于复杂: 我找到了类似问题的答案,但仅适用于一维数组。 有没有一种方法可以更简单地完成我想要的工作? 问题答案: 方法1 一种方法是像这样 方法#2 一种内存有效的方法是将每一行转换为等效的线性索引,然后使用np.in1d,例如, 方法3 使用np.sear