Considérations sur les performances de Pandas apply vs NumPy vectorize pour la création de colonnes
Bien que Pandas apply soit largement utilisé, ses performances sont en retard par rapport à NumPy vectorize lors de la création de nouvelles colonnes à partir de celles existantes. Cette disparité est attribuée au fait que les fonctions apply sont des boucles de niveau Python, qui entraînent une surcharge importante. En revanche, vectorize convertit la fonction d'entrée en fonction universelle, améliorant considérablement l'efficacité.
Benchmarks de performances
En comparant les boucles au niveau Python et en les appliquant avec raw=True, nous observez :
Véritable vectorisation
Cependant, apply et vectorize sont éclipsés par de véritables opérations de vectorisation telles que np.where, qui effectuent des calculs élément par élément sur les tableaux NumPy. Cette approche est remarquablement plus rapide, éliminant le besoin de boucle.
Autres considérations en matière de performances
Pour les goulots d'étranglement critiques, pensez à numba, un outil qui compile les fonctions Python en C hautement optimisé code. Grâce à numba, les calculs peuvent être encore accélérés.
Conclusion
Lors de la création de nouvelles colonnes à partir de colonnes existantes, NumPy vectorize offre des performances supérieures à celles de Pandas apply en raison de sa vectorisation native. capacités. Pour une efficacité optimale, une véritable vectorisation doit être utilisée le cas échéant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!