Percaya atau tidak, setelah memprofilkan kode saya saat ini, operasi berulang dari array array numpy memakan sepotong besar waktu berjalan. Apa yang saya miliki saat ini adalah metode berbasis tampilan umum:
reversed_arr = arr[::-1]
Apakah ada cara lain untuk melakukannya dengan lebih efisien, atau hanya ilusi dari obsesi saya dengan kinerja numpy yang tidak realistis?
arr
adalah array numpy.
f2py
adalah temanmu! Seringkali bermanfaat untuk menulis bagian-bagian penting dari suatu algoritma (terutama dalam komputasi ilmiah) dalam bahasa lain dan menyebutnya dari python. Semoga berhasil!
arr[::-1]
: github.com/numpy/numpy/blob/master/numpy/lib/twodim_base.py . Cari def flipud
. Fungsinya secara harfiah empat baris.
arr[::-1]
baru saja mengembalikan tampilan terbalik. Ini secepat yang Anda bisa dapatkan, dan tidak bergantung pada jumlah item dalam array, karena hanya mengubah langkahnya. Apakah yang Anda membalikkan sebenarnya array numpy?