Каков самый быстрый способ сортировки массива numpy, где каждый элемент представляет собой кортеж?Python

Программы на Python
Ответить
Anonymous
 Каков самый быстрый способ сортировки массива numpy, где каждый элемент представляет собой кортеж?

Сообщение Anonymous »

Предположим, у меня есть пустой массив формы [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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»