如何以降序遍历numpy数组?

时间:2019-04-05 18:23:08

标签: python numpy sorting

我有一个名为output的numpy数组,我想按降序浏览每个值。

print((output).argsort())

给我

[2 3 0 1]

output的值是:

[-0.00214862  0.05784702 -0.01105899 -0.00507164]

我想要的是遍历每个值(从0.05784702开始)并检查某些功能。如果是这样,我可以停止检查。否则转到下一个。

4 个答案:

答案 0 :(得分:1)

你能做吗

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

编辑:重新阅读您的问题并意识到您希望对其进行排序

答案 1 :(得分:0)

您可以对它进行反向排序:

-np.sort(-output)

您还可以反转索引

output[::-1].sort()

答案 2 :(得分:0)

您可以先使用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])

答案 3 :(得分:0)

您可以将函数reverse中的参数sorted()设置为True

import numpy as np

arr = np.arange(4)

for i in sorted(arr, reverse=True):
    print(i)

输出:

3
2
1
0