Как отсортировать массив в numpy по ключу?

Я пытаюсь разобраться, как работать с numpy и хочу отсортировать одномерный массив по ключу-функции, примерно так:

a = [9, 0, 3, 8, 1, 0, 0, 0]
a.sort(key=bool)
>>>[0, 0, 0, 0, 9, 3, 8, 1]

Есть ли способ подобной сортировки массива в numpy, без конвертации в обычный список и обратно.


Ответы (1 шт):

Автор решения: Кирилл Малышев
import numpy as np

a = np.array([9, 0, 3, 8, 1, 0, 0, 0])

def key(a):
    return a != 0

print(a[np.argsort(key(a))])

https://ideone.com/lIbvaN

→ Ссылка