Vous êtes sur la page 1sur 9

13/12/2020 Premier carnet de notes - Evernote

Titre

Thème : Data Science with phyton

Cours : Utilisation de la bibliothèque Numpy


Date : 11/12/2020
Professeur : FRANK TCHATSEU MASTER 1 DATA SCIENCE email: louenkamfrank@gmail.com

RESUME SUR NUMPY

Numpy est une bibliothèque phyton très importante pour les travaux en machine
learning, deeplearnig,..
Avec Numpy, on dispose d'un objet très important qu'on appelle NDArray qui nous
permettra de créer et de manipuler des tableaux à une dimension, 02 dimensions, .., n
dimensions

Différents constructeurs de base pour la création d'un tableau avec numpy


https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 1/9
13/12/2020 Premier carnet de notes - Evernote

importation: import numpy as np


en machine learning on travaillera le plus souvent avec des tableaux à deux
dimensions
ndarray.shape: permet d'avoir la forme de notre tableau. (nombres de lignes et
colonnes): il retourne un tuple. ex (2,3)
ndarray.size: retourne le nombre element qui sont present dans notre tableau

DIFFÉRENTS CONSTRUCTEUR DE BASE DE NUMPY


np.array(object) : création d'un tableau à une dimension pour un ensemble
d’objet. ex np.array([1,2,3),dtype=np.float64]
np.zeros(shape) : création d'un tableau rempli de 0. ex: np.zeros((3,2))
np.ones(shape): création d'un tableau rempli uniquement de 1
np.random.randn(shape) initialisation du tableau avec des nombres issus de la
distribution normale centre en 0. ici on ne precise pas le shape sous forme de
tuple. ex: np.random.randn(3,4). de plus on peut fixer la generation des nombres
aléatoires en utilisant un seed. np.random.seed(0)
np.eyes(): création d'une matrice identité

LES DIFFERENTES METHODES DE LA CLASSE


https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 2/9
13/12/2020 Premier carnet de notes - Evernote

C = np.hstack(arrayA, arrayB): colle les deux tableau A et B de manière horizontale


C = np.vstack(arrayA, arrayB): colle les deux tableau A et B de manière verticale
C = np.concatenate(arrayA, arrayB, axis=0|1) : lorsque axis=1 on fait un hstack et
0 on fait un vstack
ces méthodes sont très utiles surtout lorsqu'on fait des régressions. ou on veut pouvoir
ajouter des colonnes de biais.

D = D.reshape(shape): permet de changer la forme d'un tableau.

C= C.ravel(): Permet d'applatir un tableau en un tableau en une seule dimension

https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 3/9
13/12/2020 Premier carnet de notes - Evernote

Exercice d'application

Indication pour cette exercice


vous pourriez utiliser les fonctions random.randn(), concatenate(),

INDEXING ET LE SLICING
https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 4/9
13/12/2020 Premier carnet de notes - Evernote

i- INDEXING
Nous permet de cibler un élément précis dans le tableau

II. LE SLICING
permet de cibler une sous partie du tableau afin d'effectuer certaines opérations

https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 5/9
13/12/2020 Premier carnet de notes - Evernote

Remarque: on peut transformer une sous section de la partie ciblée


A[0:2, 0:2] = 255

BOOLEAN INDEXING

Autres methodes pour les calculs statistiques en mathematiques

np.sum(): renvoie la somme de tous les elements du tableau


np.sum(axis = 0|1) : la somme des elements suivants axe vertical en 0 ou horizontal en 1
np.min() : retourne le minimum du tableau
np.min(axis=0|1): retourne le min en fonction d'un axe
np.max(axis=0|1) : retourne le max en fonction d'un axe
np.max(): retourne le maximum du tableau
np.prod(axis=0|1): retourne le produit suivant un axe
np.sort(axis=0|1): permet de trier le tableau suivant un axe
np.argmin(axis=0|1): retourne les différentes positions ou se trouve le minimum suivan
np.mean(axis=0|1): renvoie la moyenne suivant un des axes dans notre tableau
np.std(axis=0|1): calculer ecart type en fonction d'un axe
https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 6/9
13/12/2020 Premier carnet de notes - Evernote

np.var(axis=0|1): calcul la vrariance suivant un des axes pour notre tableau

Calcul de la matrice de correlation entre les differents lignes avec numpy: tres impo
la suite

np.unique(A, return_counts=True): retourne le nombre de fois que chaque element du


apparait

QUESTIONS: comment appliquer ces differents calculs lorsque l'on a plus des nombres?

Toutes ces méthodes sont applicables uniquement lorsque l'on n'a des nombres. or dans la vra
nous rencontrerons souvent des jeux de données avec des valeurs manquantes; NaN.

https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 7/9
13/12/2020 Premier carnet de notes - Evernote

Comment resoudre ce probleme de valeur manquante

dans la transformation de donnée en data science, pour le traitement des valeurs manquantes,
soit décider ignorer ces valeurs manquantes dans les calculs ou bien la remplacer par (la moye
générale, le min/max, grace à une fonction de corrélation entre les différents variables,...)

ignorer le NaN dans les calculs : cas ou on calcul l’écart type sans tenir compte du NAN
np.nanstd(A)
np.isnan(A): retourne un masque des valeurs de A qui sont ou il ya des valeurs manquan
replacer les NAN: on peut remplacer les valeurs manquantes (par la moyenne generale p
exemple) graces au boolean indexing .

Pour aller plus loin dans l’algèbre linéaire, il existe d'autres fonctions tres importantes en data
science. pour cela il faut utiliser une bibliothèque très utilise de numpy; np.linalg
A.dot(B) : pour calculer le produit matricielle entre A et B
np.linalg.eig(A) : pour calculer les valeurs propres et les veteurs propres de A: cette
méthode est très utilise en data science lorsqu'on est face aux problèmes de réduction de
dimension

EXERCICE: NORMALISATION D'UN TABLEAU AVEC Z-SCORE

Standardiser/Normaliser la matrice A sur chaque colonne


Entrée: np.random.seed(0)
A = np.random.randint(0,100,[10,5])
Résultat: chaque colonne doit avoir la moyenne qui tend vers 0 et ecart type egale à 1

https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 8/9
13/12/2020 Premier carnet de notes - Evernote

https://www.evernote.com/u/0/client/web#?b=49ed2d9a-f67e-41dc-a469-0be65d1a0d63&n=b3a813c8-0d78-7009-705f-a31f9… 9/9

Vous aimerez peut-être aussi