Comment faire la moyenne d’une liste de listes en Python ?

Problème : Vous avez une liste de listes et vous voulez calculer la moyenne des différentes colonnes.

Exemple : Étant donné la liste de listes suivante avec quatre lignes et trois colonnes.

data = , , , ]

Vous voulez avoir les valeurs moyennes des trois colonnes:


Il existe trois méthodes qui permettent de résoudre ce problème. Vous pouvez jouer avec elles dans le shell interactif et lire plus de détails ci-dessous :

Table des matières

Méthode 1 : Moyenne en Python (pas de bibliothèque)

Un simple one-liner avec la compréhension de liste en combinaison avec la fonction zip() sur la liste déballée pour transposer la liste des listes fait le travail en Python.

data = , , , ]# Method 1: Pure Pythonres = print(res)# 

Aimez-vous les one-liners en Python ? Je le fais pour sûr – j’ai même écrit un livre entier à ce sujet avec l’éditeur de San Francisco NoStarch. Cliquez pour consulter le livre dans un nouvel onglet :

Vous pouvez visualiser l’exécution du code et les objets mémoire de ce code dans l’outil suivant (il suffit de cliquer sur « Suivant » pour voir comment se déroule une étape du code).

Méthode 2 : Moyenne avec la bibliothèque NumPy

Vous créez un tableau NumPy à partir des données et vous le passez à la fonction np.average().

data = , , , ]# Method 2: NumPyimport numpy as npa = np.array(data)res = np.average(a, axis=0)print(res)# 

L’argument axis de la fonction average définit le long de quel axe vous voulez calculer la valeur moyenne. Si vous voulez faire la moyenne des colonnes, définissez axis=0. Si vous voulez faire la moyenne sur les lignes, définissez axis=1. Si vous voulez faire la moyenne sur toutes les valeurs, ignorez cet argument.

Méthode 3 : Bibliothèque de statistiques moyennes + Map()

Juste pour vous montrer une autre alternative, en voici une qui utilise la fonction map() et notre astuce zip(*data) pour transposer la « matrice » data.

data = , , , ]# Method 3: Statistics + Map()import statisticsres = map(statistics.mean, zip(*data))print(list(res))# 

La fonction map(function, iterable) applique function à chaque élément de iterable. Comme alternative, vous pouvez également utiliser la compréhension de liste comme indiqué dans la méthode 1 de ce tutoriel. En fait, Guido van Rossum, le créateur de Python et le dictateur bienveillant de Python pour la vie (BDFL), préfère la compréhension de liste à la fonction map().

Où aller à partir d’ici ?

Assez de théorie, passons à la pratique !

Pour réussir à coder, vous devez sortir et résoudre de vrais problèmes pour de vraies personnes. C’est ainsi que vous pouvez devenir un gagnant à six chiffres facilement. Et c’est ainsi que vous polissez les compétences dont vous avez vraiment besoin dans la pratique. Après tout, à quoi sert d’apprendre la théorie dont personne n’a jamais besoin ?

Les projets pratiques sont la façon dont vous affûtez votre scie dans le codage !

Vous voulez devenir un maître du code en vous concentrant sur des projets de code pratiques qui vous font réellement gagner de l’argent et résolvent des problèmes pour les gens ?

Alors devenez un développeur indépendant Python ! C’est la meilleure façon d’aborder la tâche d’améliorer vos compétences en Python – même si vous êtes un débutant complet.

Rejoignez mon webinaire gratuit « Comment construire votre compétence à haut revenu Python » et regardez comment j’ai développé mon entreprise de codage en ligne et comment vous pouvez, aussi – dans le confort de votre propre maison.

Rejoignez le webinaire gratuit maintenant !

Alors qu’il travaillait comme chercheur dans les systèmes distribués, le Dr Christian Mayer a découvert son amour pour l’enseignement de l’informatique aux étudiants.

Pour aider les étudiants à atteindre des niveaux supérieurs de réussite en Python, il a fondé le site Web d’éducation à la programmation Finxter.com. Il est l’auteur du populaire livre de programmation Python One-Liners (NoStarch 2020), coauteur de la série de livres autoédités Coffee Break Python, passionné d’informatique, pigiste et propriétaire de l’un des 10 plus grands blogs Python au monde.

Ses passions sont l’écriture, la lecture et le codage. Mais sa plus grande passion est de servir les aspirants codeurs à travers Finxter et de les aider à booster leurs compétences. Vous pouvez vous joindre à son académie gratuite par courriel ici.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.