Ob Sie es glauben oder nicht, nachdem Sie meinen aktuellen Code profiliert haben, hat die wiederholte Operation der Numpy-Array-Umkehrung einen riesigen Teil der Laufzeit verschlungen. Was ich gerade habe, ist die übliche ansichtsbasierte Methode:
reversed_arr = arr[::-1]
Gibt es eine andere Möglichkeit, es effizienter zu machen, oder ist es nur eine Illusion aus meiner Besessenheit von unrealistischer Numpy-Performance?
arr
ist ein numpy Array.
f2py
ist dein Freund! Es lohnt sich oft, leistungskritische Teile eines Algorithmus (insbesondere im wissenschaftlichen Rechnen) in einer anderen Sprache zu schreiben und von Python aus aufzurufen. Viel Glück!
arr[::-1]
: github.com/numpy/numpy/blob/master/numpy/lib/twodim_base.py ist . Suche nach def flipud
. Die Funktion ist buchstäblich vier Zeilen lang.
arr[::-1]
nur eine umgekehrte Ansicht zurück. Es ist so schnell wie möglich und hängt nicht von der Anzahl der Elemente im Array ab, da es nur die Schritte ändert. Ist das, was Sie umkehren, tatsächlich ein numpy Array?