Che ci crediate o no, dopo aver profilato il mio codice attuale, l'operazione ripetitiva di inversione numerica dell'array ha mangiato un grosso pezzo del tempo di esecuzione. Quello che ho in questo momento è il metodo basato sulla vista comune:
reversed_arr = arr[::-1]
C'è un altro modo per farlo in modo più efficiente, o è solo un'illusione dalla mia ossessione per la prestazione insensibile irrealistica?
arrè un array intorpidito.
f2pyÈ tuo amico! Spesso vale la pena scrivere parti critiche delle prestazioni di un algoritmo (specialmente nel calcolo scientifico) in un'altra lingua e chiamarlo da Python. In bocca al lupo!
arr[::-1]: github.com/numpy/numpy/blob/master/numpy/lib/twodim_base.py . Cerca def flipud. La funzione ha letteralmente quattro righe.

arr[::-1]restituisce solo una vista invertita. È il più veloce possibile e non dipende dal numero di elementi nell'array, poiché cambia solo i passi. Quello che stai invertendo è in realtà un array intorpidito?