Maison >développement back-end >Tutoriel Python >Comment puis-je parcourir efficacement de grands ensembles de données en Python à l'aide de morceaux ?

Comment puis-je parcourir efficacement de grands ensembles de données en Python à l'aide de morceaux ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 13:25:11288parcourir

How Can I Efficiently Iterate Through Large Datasets in Python Using Chunks?

Itérer efficacement les itérateurs en Python à l'aide de morceaux

Lorsque vous travaillez avec de grands ensembles de données, il devient nécessaire de traiter les données en lots ou en morceaux plus petits. Cela permet de gérer l’utilisation de la mémoire et d’améliorer les performances. Une façon d'y parvenir consiste à utiliser les itérateurs de Python pour diviser les données en morceaux de la taille souhaitée.

La recette du groupeur

Dans la documentation itertools, le grouper() La recette fournit un moyen pratique de regrouper les données en morceaux de longueur fixe. Cependant, il peut ne pas gérer les morceaux incomplets comme vous le souhaitez.

La recette par lots

Un ajout plus récent aux recettes itertools est la fonction batched(). Il excelle dans le regroupement de données en tuples de longueur spécifiée. Contrairement à grouper(), batched() gère explicitement les morceaux incomplets, renvoyant un lot plus court sans exceptions ni valeurs de remplissage.

Solution spécifique à la séquence

Si vous travaillez uniquement avec des séquences, vous pouvez utiliser une approche plus simple :

(my_list[i:i + chunk_size] for i in range(0, len(my_list), chunk_size))

Cette solution préserve le type de la séquence d'origine et gère gracieusement le dernier chunk.

Python 3.12 et itertools.batched

Dans Python 3.12 et supérieur, itertools.batched peut être utilisé directement. Elle offre les mêmes fonctionnalités que la recette batched() :

itertools.batched(iterable, n)  # Batch data into tuples of length n

Conclusion

Le choix de la méthode appropriée dépend de vos besoins spécifiques et de la version de Python que vous utilisez en utilisant. Pour un traitement par lots général et flexible, la recette batched() ou itertools.batched de Python 3.12 est recommandée. Pour les tâches spécifiques à une séquence, la solution basée sur la séquence offre simplicité et préservation du type.

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!

Déclaration:
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