代码之家  ›  专栏  ›  技术社区  ›  Alex

如何找到数组的索引,其中的值大于numpy中的某个阈值?

  •  0
  • Alex  · 技术社区  · 5 年前

    在python(3.5.2)中,我有一个不断增加的值数组,我想找到值大于某个阈值的索引。

    我尝试了以下代码

    f = [0.0, 9.7, 19.5, 29.2, 39.0, 48.8, 58.5, 68.3, 78.1, 87.8, 97.6, 107.4, 117.1, 126.9]
    index = min(np.argwhere(f>100))
    

    这会产生一个错误

    TypeError: unorderable types: list() > int()
    

    然而,预期的结果是 index=11 f[11] 是数组的第一个元素 f 大于100。

    如何修复此代码?有更好的办法吗?

    1 回复  |  直到 5 年前
        1
  •  3
  •   zipa    5 年前

    这样就可以了:

    np.argwhere(np.array(f)>100).min()
    

    或者:

    np.argmax(np.array(f)>100)
    

    注意 argmax 在对条件进行评估的第一个索引处停止 True .