Tutoriel Python-Numpy : les fonctions statistiques

Table des matières

Introduction

  1. Que représentent les fonctions statistiques
  2. Fonction Min et Max avec Numpy
  3. Trouver la médiane avec Numpy
  4. Trouver le mean avec Numpy
  5. Trouver le mode avec Numpy
  6. Trouver la variance avec Numpy
  7. Trouver l'écart-type avec Numpy
  8. Exercices
  9. Correction des exercices

Conclusion

Introduction

Les statistiques descriptives, ou statistiques sommaires, sont des valeurs simples associées à un ensemble de données, telles que la moyenne, la médiane, l'écart type, le minimum, le maximum et les quartiles. Ces valeurs décrivent l'emplacement et la propagation d'un ensemble de données de différentes manières. La moyenne et la médiane sont des mesures du centre (emplacement) des données, et les autres valeurs mesurent la dispersion des données à partir de la moyenne et de la médiane. Ces statistiques sont essentielles à la compréhension d'un ensemble de données et constituent la base de nombreuses techniques d'analyse.

1. Que représentent les fonctions statistiques :

Il y a beaucoup de bibliothèques de statistiques en Python disponibles pour que vous puissiez travailler (Numpy, Scipy, Pandas...), mais dans ce tutoriel, vous allez découvrir la bibliothèque Numpy :

Numpy est une bibliothèque complémentaire pour le traitement numérique, dont le fonctionnement est optimisé pour gérer des tableaux à une ou plusieurs dimensions. Son type primaire est le format de tableau nommé ndarray. Cette bibliothèque comprend de plusieurs fonctions d'analyse statistique.

2. Fonction Min et Max avec Numpy :

Ces fonctions renvoient le minimum (numpy.amin()) et le maximum (numpy.amax()) des éléments du tableau donné dans un axe spécifié.

Exemple1 :

Syntaxe:

import numpy as np
a = np.array([[1,3,5],[7,9,0],[1,2,8]])
print('Notre tableau est le suivant :')
print(a)
print('\n')
print( 'Application de la fonction amin(): ' )
print(np.amin(a,1))
print ('\n' )
print( 'Application de la fonction amin():' )
print ("le min est :", np.amin(a))
print ('\n')
print( 'Application de la fonction amax():')
print ("le max est :", np.amax(a))
print ('\n')
print( 'Application de la fonction amax():' )
print (np.amax(a, axis = 1))

Résultat d’exécution :

Exemple2 :

Syntaxe :

import numpy as np
arr = np.array([[1,5,3], [4,0,9]])
print("Notre tableau est le suivant : ")
print(arr)
print("\n")
print("le min est: ")
print(np.min(arr))
print("\n")
print("le max est: ")
print(np.max(arr))

Résultat d’exécution:

Remarque :numpy a trois fonctions différentes qui semblent pouvoir être utilisées pour les mêmes choses (numpy.max (), numpy. amax (),numpy.maximum( )) --- sauf que numpy.maximum ne peut être utilisé que par un élément, tandis que numpy.max( ) et numpy.amax( ) peuvent être utilisés sur des axes particuliers, ou tous les éléments.

(De même pour numpy.min(), numpy.amin() ,numpy.minimum)

3.Trouver la médiane avec Numpy:

La médiane est la valeur où la partie supérieure des données se situe au-dessus et la partie inférieure se situe en dessous. En d'autres termes, il s'agit de la valeur moyenne d'un ensemble de données.

Pour déterminer la médiane, il faut placer les éléments de données dans l'ordre croissant et la valeur du milieu est donc la médiane. Il est facile de déterminer la valeur moyenne si le nombre des points de données est impair, par exemple, si nous voulons déterminer la médiane des notes de tous les étudiants pour la matière m. Quand les notes sont ordonnées dans l'ordre croissant, nous obtenons {5,7,8,9,10,11,12,13,15}. Il est donc clair que la valeur moyenne est 10 ; la médiane est 10.

Si l'étudiant 7 n'a pas passé l'examen, nous aurons des notes de {5,7,8,9,10,11,13,15}. Cette fois-ci, il n'y a pas de valeurs intermédiaires claires. Ensuite, prenez la moyenne est (10+9) /2=9,5, donc la médiane dans ce cas est de 9,5.

Exemple3 :

Syntaxe:

import numpy as np
a = np.array([[10,25,74], [30,45,12], [53,20,63]])
print('Notre tableau est le suivant :')
print(a)
print('\n')
print('Application de la fonction median():')
print(np.median(a))
print('\n')
print('Application de la fonction median() sur laxe 0:')
print (np.median(a, axis = 0))
print ('\n')
print('Application de la fonction median() sur laxe 1:')
print( np.median(a, axis = 1))

Résultat d’exécution:

Exemple4 :

Syntaxe:

import numpy as np
M=np.array([[11,12,13,5,6.5,15,18],[8.5,9.5,17.1,14.2,1.5,10,15.5],
[12,17.5,12.5,11,11.5,17,12],[13.5,14,6,3,13,15,5.5]])
print('Notre tableau est le suivant :')
print(B)
print('\n')
a=np.median(B, axis=0)
b=np.median(B, axis=1)
print('Application de la fonction median() sur laxe 0:')
print(a)
print('\n')
print('Application de la fonction median() sur laxe 1:')
print(b)

Résultat d’exécution:

4. Trouver le mean avec Numpy :

La fonction mean en numpy est utilisée pour calculer la moyenne des éléments présents dans le tableau. Vous pouvez aussi calculer la moyenne en utilisant le nombre d'axes, mais il ne dépend que d'un cas spécifique, généralement si vous voulez trouver la moyenne de l'ensemble du tableau, vous devez utiliser la fonction np.mean() simple.

Exemple5 :

Syntaxe :

import numpy as np
a = np.array([[9,8,7], [4,5,6], [2,3,1]])
print('Notre tableau est le suivant : ')
print(a)
print( '\n' )
print( 'Application de la fonction mean():' )
print(np.mean(a))
print('\n')
print('Application de la fonction mean() sur laxe 0 :' )
print(np.mean(a, axis = 0) )
print('\n')
print('Application de la fonction mean() sur laxe 1 :' )
print(np.mean(a, axis = 1))

Résultat d’exécution:

Exemple6 :

Syntaxe:

import numpy as np
M = np.array([[11,12,13,5,6.5,15,18],[8.5,9.5,17.1,14.2,1.5,10,15.5],
[12,17.5,12.5,11,11.5,17,12],[13.5,14,6,3,13,15,5.5]])
print('Notre tableau est le suivant: ')
print(M)
print( '\n' )
print('Notre tableau transposer est:')
print(M.T)
print( '\n' )
print( 'Application de la fonction mean():' )
print(np.mean(M.T))
print(np.mean(M))
print('\n')
print('Application de la fonction mean() sur laxe 0:' )
print(np.mean(M,axis=0))
print('\n')
print('Application de la fonction mean() sur laxe 1 :' )
print(np.mean(M,axis=1))

Résultat d’exécution :

5. Trouver le mode avec Numpy:

La valeur la plus fréquente dans notre échantillon de données. Supposons qu'il y a 15 étudiants qui se rendent à un examen et que le résultat est le suivant :

[2,3,4,7,9,9,9,10,10,10,12,13,14,15,17]

Si le mode n'est pas unique, nous disons que l'ensemble de données est bimodal, alors qu'un ensemble de données comportant plus de deux modes est multimodal.

De même que la moyenne et la médiane, nous pouvons calculer le mode en utilisant les numpy(scipy), les pandas et les statistiques.

scipy.stats.mstats.mode(tab, axis=0):

avec :

  • tab : tableau qui contient les nombres dont le mode est nécessaire.
  • axis : axe ou axes sur lesquels le mode est calculé, la valeur par défaut est de calculer le mode du tableau aplati.

Il renvoie :

  • mode : tableau des valeurs modales.
  • compte : tableau dans lequel on trouve le nombre de comptes pour chaque mode.

Exemple 7 :

Syntaxe :

import numpy as np
from scipy import stats
M = np.array([[11,12,13,5,6.5,15,18],[8.5,9.5,17.1,14.2,1.5,10,15.5],
[12,17.5,12.5,11,11.5,17,12],[13.5,14,6,3,13,15,5.5]])
print('Notre tableau est le suivant: ')
print(M)
print( '\n' )
print('Application de la fonction mode() sur laxe 0:' )
a=stats.mode(M,axis=0)
print(a)
print( '\n' )
print('Application de la fonction mode() sur laxe 1:' )
b=stats.mode(M,axis=1)
print(b)

Résultat d’exécution :

La fonction mode() a un sens lorsque nous ne dispose pas d'un échantillon de données à valeur numérique, comme dans le cas de la moyenne et de la médiane.

Par exemple, si une entreprise veut connaître le lieu le plus fréquenté par ses salariés, le mode sera une ville (ce qui est impossible dans le cas de la moyenne et de la médiane).

D’autre part, la fonction mode () n'est pas utile quand notre répartition est uniforme ; c'est-à dire que les fréquences de tous les groupes sont semblables, par exemple, à l'examen demi-trimestre pour le cas de la matière m, la répartition est uniforme, car il n'y a pas de numéros distincts qui apparaissent plusieurs fois. Dans ce cas, la mode ne fournit aucune information utile.

En outre, la fonction mode () peut parfois se trouver à la fin de la répartition qui n'est pas obligatoirement au milieu ou près du milieu de la répartition.

6. Trouver la variance avec Numpy:

La variance est la moyenne des carrés des écarts par rapport à la moyenne. Pour un ensemble de données, X={a1,a2,...}.

La variance peut être calculée en python en utilisant des bibliothèques différentes comme numpy, pandas et statistiques.

Exemple 8 :

Syntaxe :

import numpy as np
M = np.array([[11,12,13,5,6.5,15,18],[8.5,9.5,17.1,14.2,1.5,10,15.5],
[12,17.5,12.5,11,11.5,17,12],[13.5,14,6,3,13,15,5.5]])
print('Notre tableau est le suivant: ')
print(M)
print( '\n' )
print('Application de la fonction var() sur laxe 0:' )
a = np.var(M,axis=0)
print(a)
print( '\n' )
print('Application de la fonction var() sur laxe 0:' )
b = np.var(M,axis=1)
print(b)

Résultat d’exécution :

7. Trouver l'écart-type avec Numpy:

L’écart-type est la racine carrée de la variance.

En python L'écart-type se calcule à l'aide de différentes bibliothèques telles que numpy,

Pandas et statistiques.

numpy.std (a, axis=None, dtype=None, ddof=0)

Exemple 9 :

Syntaxe :

import numpy as np
M = np.array([[11,12,13,5,6.5,15,18],[8.5,9.5,17.1,14.2,1.5,10,15.5],
[12,17.5,12.5,11,11.5,17,12],[13.5,14,6,3,13,15,5.5]])
print('Notre tableau est le suivant : ')
print(M)
print( '\n' )
print('Application de la fonction std() sur laxe 0:' )
a = np.std(M ,axis=0)
print(a)
print( '\n' )
print('Application de la fonction std() sur laxe 1:' )
b = np.std(M ,axis=1)
print(b)

Résultat d’exécution :

8. Exercices

 Exercice 1 :

Écrivez un programme python pour trouver la moyenne (mean) des données suivantes :

(a) 1, 2, 11, 13, 6, 7, 0, 1

(b) 17, 18, 19, 22, 23, 20, 37, 29, 59, 33

(c) 12.2, 11.2, 4.7, 5.4, 4.4, 11.4, 10.5

(d) 21/4, 31/2, 52/2, 13/4, 13/2

Exercice 2 :

Écrivez un programme python pour Trouver la moyenne(mean) des dix premiers nombres entiers.

Exercice 3 :

Voici les points marqués par 11 joueurs lors d'un match de cricket :

13, 16, 101, 51, 121, 81, 21, 16, 19, 13, 17 .

Trouvez la moyenne, le mode, la médiane de ces données.

Exercice 4 :

Écrivez un programme python pour trouver le mode des données suivantes.

(a) 1, 2, 11, 13, 6, 7, 0, 1

(b) 17, 18, 19, 22, 23, 20, 37, 29, 59, 33

(c) 12.2, 11.2, 4.7, 5.4, 4.4, 11.4, 10.5

(d) 21/4, 31/2, 52/2, 13/4, 13/2

Exercice 5 : 

Écrivez un programme python pour trouver la variance, l’écart-type des données suivantes.

(a) 1, 2, 11, 13, 6, 7, 0, 1.

(b) 17, 18, 19, 22, 23, 20, 37, 29, 59, 33.

(c) 12.2, 11.2, 4.7, 5.4, 4.4, 11.4, 10.5.

(d) 21/4, 31/2, 52/2, 13/4, 13/2.

9. Correction des exercices :

Exercice 1 :

Syntaxe :

import numpy as np
A = np.array([1, 2, 11, 13, 6, 7, 0, 1])
B = np.array([17, 18, 19, 22, 23, 20, 37, 29, 59, 33])
C = np.array([12.2, 11.2, 4.7, 5.4, 4.4, 11.4, 10.5 ])
D = np.array([21/4, 31/2, 52/2, 13/4, 13/2])
print('Notre tableaux est le suivant: ')
print(A)
print( '\n' )
print(B)
print( '\n' )
print(C)
print( '\n' )
print(D)
print( '\n' )
print('Application de la fonction mean() sur A:' )
print(np.mean(A))
print( '\n' )
print('Application de la fonction mean() sur B:' )
print(np.mean(B))
print( '\n' )
print('Application de la fonction mean() sur C:' )
print(np.mean(C))
print( '\n' )
print('Application de la fonction mean() sur D:' )
print(np.mean(D))

Résultat de l’exécution :

Exercice 2 :

Syntaxe :

import numpy as np
for i in range(0,10):
A[i]=i
print('Notre tableaux est le suivant: ')
print(A)
print( '\n' )
print('Application de la fonction mean() sur A:' )
print(np.mean(A))

Résultat d’exécution :

Exercice 3 :

Syntaxe :

import numpy as np
from scipy import stats
A = np.array([13, 16, 101, 51, 13, 81, 21, 16, 19, 13, 17])
print('Notre tableaux est le suivant: ')
print(A)
print( '\n' )
print('Application de la fonction mean() sur A:' )
print(np.mean(A))
print( '\n' )
print('Application de la fonction median() sur A:' )
print(np.median(A))
print( '\n' )
print('Application de la fonction mode() sur a:' )
print(stats.mode(A,axis=0))

ü Résultat d’exécution :

Exercice 4 :

Syntaxe :

import numpy as np
from scipy import stats
A = np.array([11, 2, 11, 13, 6, 7, 0, 1])
B = np.array([17, 18, 19, 23, 23, 20, 37, 29, 59, 33])
C = np.array([12.2, 11.2, 4.4, 5.4, 4.4, 11.4, 10.5 ])
D = np.array([21/4, 31/2, 52/2, 13/4, 13/4])
print('Notre tableaux est le suivant: ')
print(A)
print( '\n' )
print(B)
print( '\n' )
print(C)
print( '\n' )
print(D)
print( '\n' )
print('Application de la fonction mean() sur A:' )
print(stats.mode(A,axis=0))
print( '\n' )
print('Application de la fonction mean() sur B:' )
print(stats.mode(B,axis=0))
print( '\n' )
print('Application de la fonction mean() sur C:' )
print(stats.mode(C,axis=0))
print( '\n' )
print('Application de la fonction mean() sur D:' )
print(stats.mode(D,axis=0))

Résultat d’exécution :

Exercice 5 :

Syntaxe :

import numpy as np
A = np.array([1, 2, 11, 13, 6, 7, 0, 1])
B = np.array([17, 18, 19, 22, 23, 20, 37, 29, 59, 33])
C = np.array([12.2, 11.2, 4.7, 5.4, 4.4, 11.4, 10.5 ])
D = np.array([21/4, 31/2, 52/2, 13/4, 13/2])
print('Notre tableaux est le suivant : ')
print(A)
print( '\n' )
print(B)
print( '\n' )
print(C)
print( '\n' )
print(D)
print( '\n' )
print('Application de la fonction var() sur A:' )
print(np.var(A))
print( '\n' )
print('Application de la fonction var() sur B:' )
print(np.var(B))
print( '\n' )
print('Application de la fonction var() sur C:' )
print(np.var(C))
print( '\n' )
print('Application de la fonction var() sur D:' )
print(np.var(D))
print( '\n' )
print('Application de la fonction std() sur A:' )
print(np.std(A))
print( '\n' )
print('Application de la fonction std() sur B:' )
print(np.std(B))
print( '\n' )
print('Application de la fonction std() sur C:' )
print(np.std(C))
print( '\n' )
print('Application de la fonction std() sur D:' )
print(np.std(D))

Résultat d’exécution :

Conclusion :

L'une des caractéristiques les plus attractives de Python pour les personnes qui ont besoin d'analyser les données est le vaste ensemble de paquets de manipulation et d'analyse des données, ainsi que la communauté active des scientifiques travaillant avec Python. Python est facile à utiliser, tout en offrant des bibliothèques très puissantes et rapides, qui permettent même aux programmeurs relativement débutants à traiter rapidement et facilement des ensembles de données étendues. Au cœur de nombreux ensembles et outils de la science des données se trouve  la bibliothèque Pandas. Pandas propose deux types de conteneurs de données qui s'ajoutent à NumPy et disposent d'un bon support pour les étiquettes (autres que les simples entiers). Ils rendent également le travail avec de grands ensembles de données extrêmement facile.

Article publié le 08 Novembre 2020par Babachekhe Mohamed