1

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

print((output).argsort())

给我

[2 3 0 1]

的值为output

[-0.00214862  0.05784702 -0.01105899 -0.00507164]

我想要的是遍历每个值(以 开头0.05784702)并检查某些功能。如果是真的,我可以停止检查。否则就进入下一个。

4

4 回答 4

1

你可以做:

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

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

于 2019-04-05T18:27:47.687 回答
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])
于 2019-04-05T18:47:14.677 回答
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
于 2019-04-05T19:24:34.477 回答
0

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

-np.sort(-output)

oy 你也可以反转索引

output[::-1].sort()
于 2019-04-05T18:42:42.890 回答