Wie skalieren Python / Numpy-Arrays mit zunehmenden Array-Dimensionen?
Dies basiert auf einem Verhalten, das ich beim Benchmarking von Python-Code für diese Frage festgestellt habe: Wie kann man diesen komplizierten Ausdruck mit numpy-Slices ausdrücken?
Das Problem bestand hauptsächlich in der Indizierung zum Auffüllen eines Arrays. Ich fand heraus, dass die Vorteile der Verwendung von (nicht sehr guten) Cython- und Numpy-Versionen gegenüber einer Python-Schleife in Abhängigkeit von der Größe der beteiligten Arrays variieren. Sowohl Numpy als auch Cython verzeichnen einen zunehmenden Leistungsvorteil bis zu einem gewissen Punkt (ungefähr für Cython und N = 2000 für Numpy auf meinem Laptop), wonach ihre Vorteile nachließen (die Cython-Funktion blieb die schnellste).
Ist diese Hardware definiert? Welche bewährten Methoden sollten beim Arbeiten mit großen Arrays für Code befolgt werden, bei dem die Leistung geschätzt wird?
Diese Frage ( Warum hängt meine Matrix-Vektor-Multiplikationsskalierung nicht zusammen? ) Mag zusammenhängen, aber ich bin daran interessiert, mehr darüber zu erfahren, wie verschiedene Arten der Behandlung von Arrays im Python-Maßstab im Verhältnis zueinander aussehen.