Предположим, у меня есть пустой массив формы [N, 2]. Я хочу отсортировать массив, рассматривая каждую строку как кортеж из двух элементов. Мне нужен только отсортированный индекс без необходимости возвращать отсортированный массив.
Поскольку numpy не поддерживает эту операцию напрямую, я попробовал использовать структурированный массив следующим образом:
Код: Выделить всё
a = np.empty(N, dtype=[('f0', int), ('f1', int)])
a['f0'] = x
a['f1'] = y
index = np.argsort(a)
Однако я обнаружил, что код работает очень медленно, как минимум в 100 раз медленнее, чем сортировка стандартного массива numpy. Я совершенно не понимаю, почему операция argsort для структурированного массива выполняется очень медленно. И мне бы хотелось увидеть более быструю реализацию. Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/792 ... is-a-tuple