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

如何按降序遍历numpy数组?

  •  1
  • Shamoon  · 技术社区  · 6 年前

    我有一个叫做 output 我想按降序遍历每一个值。

    print((output).argsort())
    

    [2 3 0 1]
    

    价值观 输出 是:

    [-0.00214862  0.05784702 -0.01105899 -0.00507164]
    

    我想要的是遍历每个值(从 0.05784702 )检查一些功能。如果是真的,我可以停止检查。或者去下一个。

    1 回复  |  直到 6 年前
        1
  •  1
  •   VicVer    6 年前

    你能做到:

    for a in reversed(sorted(output)):
        print(a)
    

        2
  •  0
  •   Tal Avissar    6 年前

    -np.sort(-output)
    

    你也可以反转指数

    output[::-1].sort()
    
        3
  •  0
  •   kmario23 Mazdak    6 年前

    你可以先用 numpy.sort() 并将得到的结果用 numpy.flip() ,它将按降序返回数组,如下所示:

    In [21]: arr
    Out[21]: array([-0.00214862,  0.05784702, -0.01105899, -0.00507164])
    
    In [22]: np.flip(np.sort(arr))
    Out[22]: array([ 0.05784702, -0.00214862, -0.00507164, -0.01105899])
    
        4
  •  0
  •   Mykola Zotko    6 年前

    reverse 在函数中 sorted() True :

    import numpy as np
    
    arr = np.arange(4)
    
    for i in sorted(arr, reverse=True):
        print(i)
    

    3
    2
    1
    0