Np.vectorize() est-il toujours le moyen le plus rapide de créer de nouvelles colonnes dans Pandas ?

DDD
Libérer: 2024-10-26 12:42:02
original
562 Les gens l'ont consulté

 Is np.vectorize() Always the Fastest Way to Create New Columns in Pandas?

Np.vectorize() est-il systématiquement plus rapide que Pandas apply() pour créer de nouvelles colonnes ?

Oui, np.vectorize() est généralement plus rapide que Pandas apply() pour cette tâche. Nos tests montrent que np.vectorize() peut être nettement plus rapide, en particulier pour les ensembles de données plus volumineux.

Pourquoi np.vectorize() est-il plus rapide que apply() ?

Pandas apply() s'appuie sur des boucles de niveau Python pour parcourir les lignes ou les colonnes d'un dataframe. Cela peut introduire une surcharge importante par rapport à np.vectorize(), qui utilise du code optimisé basé sur C pour les opérations vectorisées.

np.vectorize() convertit votre fonction d'entrée en une fonction universelle (ufunc) et l'évalue sur des tuples successifs de tableaux d'entrée utilisant la diffusion. Cela évite la surcharge liée à la création et au transfert d'objets Pandas, ce qui entraîne des performances améliorées.

Np.vectorize() devrait-il être préféré à apply() ?

Pour créer nouvelles colonnes en fonction des colonnes existantes, np.vectorize() est généralement un meilleur choix en raison de ses performances supérieures. Cependant, il est important de noter que np.vectorize() a une flexibilité limitée par rapport à apply(), en particulier lorsqu'il s'agit d'accéder à d'autres colonnes ou d'effectuer des opérations complexes.

Autres options plus rapides

Pour des calculs vectorisés véritablement optimisés, les opérations NumPy comme np.where() ou les opérations par éléments sont très efficaces. Si les performances sont essentielles, envisagez de les utiliser ou d'explorer des bibliothèques comme numba qui permettent une compilation JIT efficace de fonctions personnalisées.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!