Armazenando objetos Python em uma lista Python vs. uma matriz Numpy de tamanho fixo

Ao fazer algum trabalho de bioinformática, tenho ponderado sobre as ramificações do armazenamento de instâncias de objetos em um array Numpy, em vez de em uma lista do Python, mas em todos os testes que fiz, o desempenho foi pior em todas as instâncias. Eu estou usando CPython. Alguém sabe o motivo?

Especificamente:

Quais são os impactos no desempenho do uso de uma matriz de comprimento fixonumpy.ndarray(dtype=object) contra uma lista normal do Python? Os testes iniciais que realizei mostraram que acessar os elementos da matriz Numpy era mais lento que a iteração pela lista do Python, especialmente ao usar métodos de objeto.Por que é mais rápido instanciar objetos usando uma compreensão de lista, como[ X() for i in range(n) ] em vez de umnumpy.empty(size=n, dtype=object)?Qual é a sobrecarga de memória de cada um? Eu não fui capaz de testar isso. Minhas aulas usam extensivamente__slots__, se isso tiver algum impacto.

questionAnswers(1)

yourAnswerToTheQuestion