Предположим, у меня есть какой-нибудь массив numpy (все элементы уникальны), который я хочу отсортировать в порядке убывания.Мне нужно выяснить, какие позиции элементы исходного массива займут в отсортированном массиве.
Пример.
In1: [1, 2, 3] # Input
Out1: [2, 1, 0] # Expected output
In2: [1, -2, 2] # Input
Out2: [1, 2, 0] # Expected output
Я пробовал это:
def find_positions(A):
A = np.array(A)
A_sorted = np.sort(A)[::-1]
return np.argwhere(A[:, None] == A_sorted[None, :])[:, 1]
Но этоне работает, когда входной массив очень большой (len> 100000).Что я сделал не так и как я могу это исправить?