Python >> Tutoriel Python >  >> Python Tag >> NumPy

Moyenne numérique

NumPy est une bibliothèque Python populaire pour la science des données axée sur les tableaux, les vecteurs et les matrices. C'est au cœur de la science des données et de l'apprentissage automatique en Python. Dans l'article d'aujourd'hui, vous allez maîtriser l'impressionnant average() de NumPy fonction qui sera un ami fidèle pour vous lors de vos prochaines batailles en science des données.

average(a, axis=None, weights=None, returned=False)
Argument Description
a semblable à un tableau :Le tableau contient les données à moyenner. Peut être multidimensionnel et il n'est pas nécessaire qu'il s'agisse d'un tableau NumPy, mais c'est généralement le cas.
axis=None Aucun ou entier ou tuple d'entiers : L'axe le long duquel faire la moyenne du tableau a .
weights=None semblable à un tableau :Un tableau de poids associé aux valeurs du tableau a . Cela vous permet de personnaliser le poids vers la moyenne de chaque élément du tableau.
returned=False Booléen :Si False , renvoie la valeur moyenne. Si True , renvoie le tuple du (average, sum_of_weights) afin que vous puissiez facilement normaliser la moyenne pondérée.

Voici un bref résumé de la np.average() fonction :

La fonction moyenne de NumPy calcule la moyenne de toutes les valeurs numériques dans un tableau NumPy. Lorsqu'il est utilisé sans paramètres, il calcule simplement la moyenne numérique de toutes les valeurs du tableau, quelle que soit la dimensionnalité du tableau. Par exemple, l'expression np.average([[1,2],[2,3]]) donne la valeur moyenne (1+2+2+3)/4 = 2.0 .

Comment calculer la moyenne pondérée d'un tableau numpy en Python ?

Cependant, que se passe-t-il si vous souhaitez calculer la moyenne pondérée d'un tableau NumPy ? En d'autres termes, vous voulez surpondérer t certaines valeurs de tableau et sous-pondèrent les autres.

Vous pouvez facilement accomplir cela avec la fonction moyenne de NumPy en passant l'argument des poids au NumPy average fonction.

import numpy as np

a = [-1, 1, 2, 2]

print(np.average(a))
# 1.0

print(np.average(a, weights = [1, 1, 1, 5]))
# 1.5

Dans le premier exemple, nous avons simplement fait la moyenne de toutes les valeurs du tableau :(-1+1+2+2)/4 = 1.0 . Cependant, dans le deuxième exemple, nous surpondérons le dernier élément du tableau 2 - il porte maintenant cinq fois le poids des autres éléments, ce qui donne le calcul suivant :(-1+1+2+(2+2+2+2+2))/8 = 1.5 .

Comment calculer la moyenne le long d'un axe ?

L'extraction de statistiques de base à partir de matrices (par exemple, moyenne, variance, écart type) est un élément essentiel pour l'analyse d'un large éventail d'ensembles de données tels que les données financières, les données de santé ou les données des médias sociaux. Avec l'essor de l'apprentissage automatique et de la science des données, votre formation approfondie des opérateurs d'algèbre linéaire avec NumPy devient de plus en plus précieuse pour le marché

Dans ce qui suit, vous apprendrez à faire la moyenne le long d'un axe. Voici ce que vous voulez obtenir :


Voici comment vous pouvez faire la moyenne le long d'un axe dans NumPy :

import numpy as np

x = np.array([[1, 3, 5],
              [1, 1, 1],
              [0, 2, 4]])

print(np.average(x, axis=1))
# [3. 1. 2.]

NumPy représente en interne les données à l'aide de tableaux NumPy (np.array ). Ces tableaux peuvent avoir un nombre arbitraire de dimensions. Dans la figure ci-dessus, nous montrons un tableau NumPy à deux dimensions.

En pratique, le tableau peut avoir une dimensionnalité beaucoup plus élevée. Vous pouvez identifier rapidement la dimensionnalité d'un tableau NumPy en comptant le nombre de parenthèses ouvrantes "[ " lors de la création du tableau. L'alternative plus formelle serait d'utiliser le ndim propriété.

Chaque dimension a son propre identifiant d'axe. En règle générale :la dimension la plus externe a l'identifiant "0", la deuxième dimension la plus externe a l'identifiant "1", et ainsi de suite.

Par défaut, la fonction de moyenne NumPy agrège toutes les valeurs d'un tableau NumPy en une seule valeur :

import numpy as np

x = np.array([[1, 3, 5],
              [1, 1, 1],
              [0, 2, 4]])



print(np.average(x))
# 2.0

Par exemple, la moyenne simple d'un tableau NumPy est calculée comme suit :

(1+3+5+1+1+1+0+2+4)/9 = 18/9 = 2.0

Calcul de la moyenne, de la variance et de l'écart type le long d'un axe

Cependant, vous souhaitez parfois faire la moyenne le long d'un axe.

Par exemple, vous pouvez travailler dans une grande société financière et vouloir calculer la valeur moyenne d'un cours d'action — étant donné une grande matrice de cours d'actions (lignes =différentes actions, colonnes =cours d'actions quotidiens).

Voici comment procéder en spécifiant le mot clé "axis ” comme argument de la fonction moyenne :

import numpy as np


## Stock Price Data: 5 companies
# (row=[price_day_1, price_day_2, ...])
x = np.array([[8, 9, 11, 12],
              [1, 2, 2, 1], 
              [2, 8, 9, 9],
              [9, 6, 6, 3],
              [3, 3, 3, 3]])


avg = np.average(x, axis=1)

print("Averages: " + str(avg))

"""
Averages: [10.   1.5  7.   6.   3. ]
"""

Notez que vous voulez exécuter la fonction le long du axis=1 , c'est-à-dire qu'il s'agit de l'axe qui est agrégé à une seule valeur. Par conséquent, les tableaux NumPy résultants ont une dimensionnalité réduite.

Moyenne de grande dimension le long d'un axe

Bien sûr, vous pouvez également effectuer cette moyenne le long d'un axe pour les tableaux NumPy de grande dimension. Conceptuellement, vous agrégerez toujours l'axe que vous spécifiez comme argument.

Voici un exemple :

import numpy as np

x = np.array([[[1,2], [1,1]],
              [[1,1], [2,1]],
              [[1,0], [0,0]]])


print(np.average(x, axis=2))

"""
[[1.5 1. ]
 [1.  1.5]
 [0.5 0. ]]
"""

Puzzle moyen NumPy

Les puzzles sont un excellent moyen de tester et d'entraîner vos compétences en codage. Jetez un œil au casse-tête suivant :

import numpy as np

# Goals in five matches
goals_brazil = np.array([1,2,3,1,2])
goals_germany = np.array([1,0,1,2,0])

br = np.average(goals_brazil)
ge = np.average(goals_germany)
print(br>ge)

Exercice :Quel est le résultat de ce puzzle ?
*Niveau Débutant*

Vous pouvez résoudre ce puzzle sur l'application de puzzle interactive Finxter :

Ce puzzle introduit une nouvelle fonctionnalité de la bibliothèque NumPy :la fonction moyenne. Lorsqu'elle est appliquée à un tableau 1D, cette fonction renvoie la valeur moyenne du tableau.

Dans le puzzle, la moyenne des buts des cinq derniers matchs du Brésil est de 1,8 et de l'Allemagne de 0,8. En moyenne, le Brésil a marqué un but de plus par match.


Êtes-vous un codeur maître?
Testez vos compétences maintenant !