Как я могу пройти через массив NumPy в порядке убывания? - PullRequest
1 голос
/ 05 апреля 2019

У меня есть массив с именем output, и я хочу просмотреть каждое из значений в порядке убывания.

print((output).argsort())

дает мне

[2 3 0 1]

Значения output:

[-0.00214862  0.05784702 -0.01105899 -0.00507164]

Я хочу пройтись по каждому из значений (начиная с 0.05784702) и проверить некоторые функции. Если это правда, я могу перестать проверять. Или же перейти к следующему.

Ответы [ 4 ]

1 голос
/ 05 апреля 2019

Можете ли вы сделать:

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

РЕДАКТИРОВАТЬ: перечитал ваш вопрос и понял, что вы хотите его отсортировать

0 голосов
/ 05 апреля 2019

Вы можете установить параметр reverse в функции sorted() на True:

import numpy as np

arr = np.arange(4)

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

Выход:

3
2
1
0
0 голосов
/ 05 апреля 2019

Вы можете сначала отсортировать его с помощью 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])
0 голосов
/ 05 апреля 2019

Вы можете выполнить обратную сортировку:

-np.sort(-output)

oy Вы также можете отменить индексы

output[::-1].sort()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...