Вірите чи ні, після профілю мого поточного коду повторювана операція реверсії масивного масиву з'їла гігантський шматок часу роботи. Зараз у мене є загальний метод на основі перегляду:
reversed_arr = arr[::-1]
Чи є якийсь інший спосіб зробити це більш ефективно, чи це просто ілюзія моєї одержимості нереалістичним нудотним виконанням?
arr
це масивний масив.
f2py
твій друг! Часто варто написати критичні частини алгоритму (особливо в наукових обчисленнях) іншою мовою і назвати його з python. Удачі!
arr[::-1]
: github.com/numpy/numpy/blob/master/numpy/lib/twodim_base.py . Шукати def flipud
. Функція - буквально чотири рядки.
arr[::-1]
просто повертає перевернутий вигляд. Це так швидко, як ви можете отримати, і не залежить від кількості елементів у масиві, оскільки він просто змінює крок. Це те, що ти реверсуєш, насправді нумерований масив?