Speichern von Python-Objekten in einer Python-Liste im Vergleich zu einem Numpy-Array mit fester Länge

Bei einigen Arbeiten zur Bioinformatik habe ich mir überlegt, wie sich das Speichern von Objektinstanzen in einem Numpy-Array und nicht in einer Python-Liste auswirkt, aber bei allen Tests, die ich durchgeführt habe, war die Leistung in jedem Fall schlechter. Ich benutze CPython. Kennt jemand den Grund dafür?

Speziell:

Welche Auswirkungen hat die Verwendung eines Arrays mit fester Länge auf die Leistung?numpy.ndarray(dtype=object) gegen eine normale Python-Liste? Erste Tests, die ich durchgeführt habe, haben gezeigt, dass der Zugriff auf die Numpy-Array-Elemente langsamer war als die Iteration in der Python-Liste, insbesondere bei Verwendung von Objektmethoden.Warum ist es schneller, Objekte mit einem Listenverständnis wie. Zu instanziieren?[ X() for i in range(n) ] anstelle einernumpy.empty(size=n, dtype=object)?Was ist der Speicheraufwand von jedem? Ich konnte das nicht testen. Meine Klassen nutzen ausgiebig__slots__, wenn das Auswirkungen hat.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage