Hallo zusammen!
Erst einmal vielen Dank für die Aufnahme!
Und dann gleich meine erste Frage:
Ich muss innerhalb eines langen Codes immer wieder auf eine große Anzahl an kleinen Matrizen (z.B.3x3) zugreifen.
Übersichtlicher wäre es die einzelnen Matrizen als Eigenschaft eines Elements innerhalb einer definierten Klasse abzulegen.
z.B. Klasse: Elemente, Eigenschaft: Transformationsmatrix
=> all_elements[0].transmat = np.array([[1,0,0],[0,1,0],[0,0,1]])
Die Frage wäre nun, ob dies gegenüber einem Abspeichern aller Matrizen innerhalb eines Arrays einen wesentlichen Geschwindigkeitsnachteil mit sich bringt!?
Vielen Dank im Voraus!
Beste Grüße
Geschwindigkeit: class-element oder array
@dralban: Die Antwort findet man am besten durch ausprobieren und messen heraus. Stichwort Profiling (z.B. `cProfile` und `profile` in der Standardbibliothek). Wobei man nicht nur auf die absolute Geschwindigkeit schauen sollte, sondern auch welche Lösung verständlich(er) ist.
Zusätzliche Datenstrukturen erfordern naturgemäß etwas mehr Rechenaufwand. Aber mit zunehmender Komplexität des Codes werden sie nun mal nötig. Andernfalls erkauft man sich eine bessere Ausführungszeit, indem man die Verständlichkeit der Implementierung dafür opfert. Das muss man gegeneinander abwägen. Meistens ist der Performancegewinn eher gering und man neigt somit zur verständlicheren Datenstruktur.
Wie man die Änderungen in Bezug auf die Ausführungszeit messen kann, schrieb BlackJack ja bereits. Zusätzlich empfehle ich das `timeit`-Modul bzw den in IPython eingebauten `timeit`-Befehl.
Wie man die Änderungen in Bezug auf die Ausführungszeit messen kann, schrieb BlackJack ja bereits. Zusätzlich empfehle ich das `timeit`-Modul bzw den in IPython eingebauten `timeit`-Befehl.