İster inanın ister inanmayın, geçerli kodumun profilini oluşturduktan sonra, numpy dizi geri dönüşümünün tekrarlayan çalışması, çalışma süresinin dev bir yığınını yedi. Şu anda sahip olduğum ortak görünüm tabanlı yöntem:
reversed_arr = arr[::-1]
Daha verimli bir şekilde yapmanın başka bir yolu var mı, yoksa sadece gerçekçi olmayan numpy performansına olan takıntımdan bir yanılsama mı?
arr
de bir numpy dizisidir.
f2py
senin arkadaşın! Bir algoritmanın performans açısından kritik kısımlarını (özellikle bilimsel hesaplamada) başka bir dilde yazmak ve python'dan çağırmak genellikle faydalıdır. İyi şanslar!
arr[::-1]
: github.com/numpy/numpy/blob/master/numpy/lib/twodim_base.py . İçin ara def flipud
. İşlev tam anlamıyla dört satır uzunluğundadır.
arr[::-1]
sadece ters bir görünüm döndürür. Olabildiğince hızlıdır ve dizideki öğelerin sayısına bağlı değildir, çünkü sadece adımları değiştirir. Ters çevirdiğiniz şey aslında bir dizi midir?