Programmer en Python Pour La DS
Programmer en Python Pour La DS
U : 2024/2025
Pr. A.BENGHABRIT
[email protected]
Introduction
❖ Python est devenu la lingua franca pour de nombreuses applications de science des
données. Il combine la puissance des langages de programmation polyvalents avec la
facilité d'utilisation des langages de script spécifiques à un domaine, MATLAB ou R.
Pr A.BENGHABRIT 3
Anaconda
❖ Anaconda est une distribution Python conçue pour le traitement des données à grande
échelle, l'analyse prédictive et le calcul scientifique. Anaconda est livré avec NumPy,
Pandas, SciPy, matplotlib, IPython, Jupyter Notebook et Scikit-learn. Disponible sur Mac
OS, Windows et Linux : https://www.anaconda.com/products/individual.
Pr A.BENGHABRIT 4
Jupyter Notebook
❖ Le Jupyter Notebook est un environnement interactif permettant d'exécuter du code
dans le navigateur et permet d'intégrer facilement du code, du texte, des images, etc.
C'est un excellent outil pour l'analyse exploratoire des données et il est largement utilisé
par les data scientists. Bien que Jupyter Notebook supporte de nombreux langages de
programmation, nous n'avons besoin que du support Python.
Pr A.BENGHABRIT 5
Jupyter Notebook
Page d'accueil
de Jupyter (Le
tableau de
bord).
Création d’un
nouveau notebook
dans le dossier de
travail choisit.
Arrêter le Notebook
pour pouvoir le
renommer
Onglet Running
montrant les
notebooks en
cours d’utilisation.
Pr A.BENGHABRIT 7
Notion de variable
❖ Dans Python aussi, la notion de variable est présente et toutes les règles de nomination
s’appliquent : la casse, commencer par une lettre, etc…
Pr A.BENGHABRIT 8
Types de données
❖ Pour afficher le contenu d’une variable
on utilise la fonction print() et pour
détecter son type on utilise la fonction
type() : int (entier), float (réel), str (chaîne
de caractères), bool (booléen).
Pr A.BENGHABRIT 9
Types de données
❖ on peut concaténer des strings via
l’opérateur +.
Pr A.BENGHABRIT 10
❖ Toutes les opérations
Opérateurs
arithmétiques restent
valables également : addition (+), soustraction (-),
multiplication (*), division (/), division entière (//),
modulo (%), puissance (**), etc…
Pr A.BENGHABRIT 11
Instructions de contrôle et boucles
❖ L’instruction de contrôle ❖ La boucle FOR a la syntaxe
IF ELIF ELSE a la syntaxe suivante :
suivante :
for valeur in liste :
if condition1 :
blocs d’actions
action1
❖ La boucle WHILE a la
elif condition2 :
syntaxe suivante :
action2
while condition :
else:
blocs d’actions
action3
Pr A.BENGHABRIT 12
Bibliothèques
❖ Dans les langages de programmation, les bibliothèques sont des collections de fonctions
utilitaires, regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à les
réécrire.
❖ Pour importer une bibliothèque (library) et l’ensemble de ses fonctions on utilise import.
Pour consulter son contenu on utilise dir().
Pr A.BENGHABRIT 13
Listes
❖ Une liste en Python est une structure de
données qui contient une série de valeurs de
types différents rangées dans l’ordre de la
création, ce qui leur confère une grande
flexibilité.
Pr A.BENGHABRIT 14
Manipulation des listes
❖On peut récupérer un élément de la liste ou
plusieurs à la fois (slicing). Dans ce cas
l’élément du dernier indice donné ne sera
pas récupéré.
Pr A.BENGHABRIT 15
Manipulation
❖ Les éléments d’une liste peuvent
des listes
être modifiés et supprimés. Pour la
suppression on peut utiliser le
mots-clé del :
https://openclassrooms.com/forum/
sujet/les-mots-clefs-25832
Pr A.BENGHABRIT 16
Manipulation des listes
❖ Plusieurs fonctions peuvent être appliquées
aux listes pour calculer :
❖ La somme des valeurs sum();
❖ La taille de la liste len();
Pr A.BENGHABRIT 17
Manipulation des listes
❖ Les listes contiennent différentes méthodes qui
permettent de les manipuler :
Pr A.BENGHABRIT 18
Tuples
❖ Les tuples ressemblent aux listes, mais on
ne peut pas les modifier une fois qu’ils ont
été créés et ils sont définit avec des
parenthèses.
def nom(paramètres):
bloc d'instructions
return resultats
Pr A.BENGHABRIT 20
Dictionnaires
❖ Un dictionnaire est une structure de données de types différents, d’éléments non
ordonnés, identifiés par des clés uniques et délimités par des accolades. Mais ils
sont indexés et peuvent être modifiés.
Pr A.BENGHABRIT 21
Manipulation d’un dictionnaire
❖ Les éléments d’un dictionnaire peuvent être modifiés et supprimés comme on peut
ajouter de nouveaux éléments.
Pr A.BENGHABRIT 22
Parcourir un dictionnaire
Un dictionnaire a différentes
méthodes permettant sa
manipulation : keys pour
retourner l’ensemble des clés
du dictionnaire, values pour
retourner l’ensemble des
valeur d’un dictionnaire et
items pour retourner une liste
de tuples contenant les clés et
les valeurs associées.
Pr A.BENGHABRIT 23
Bibliothèque NumPy
❖ NumPy (diminutif de Numerical Python) est l'un des paquets fondamentaux pour le
calcul scientifique en Python. Il contient des fonctionnalités pour les tableaux
multidimensionnels et des fonctions mathématiques de haut niveau, développées en
C afin d'obtenir d'excellentes performances d'exécution (point faible des langages
interprétés), telles que les opérations d'algèbre linéaire et la transformée de Fourier
ainsi que des générateurs de nombres pseudo-aléatoires.
https://scikit-learn.org/stable/modules/classes.html Pr A.BENGHABRIT 24
Tableaux NumPy (Ndarray)
❖ La fonctionnalité de base de NumPy est la classe Ndarray, un tableau multidimensionnel
(n-dimensional array), dans laquelle tous les éléments du tableau doivent être du même
type. Ce dernier est automatiquement déduit au moment de sa création et a un impact sur
les opérations qui y seront appliquées. Mais il est également possible de le déterminer
manuellement.
Pr A.BENGHABRIT 25
Tableaux NumPy (Ndarray)
❖ La création d’un tableau NumPy peut être faite à partir d’une liste et si cette
dernière contient des données de types différents, Numpy essaiera de les convertir
toutes au type le plus général (à consulter pour plus de détail sur les type NumPy :
https://numpy.org/doc/stable/user/basics.types.html).
Pr A.BENGHABRIT 26
Tableaux NumPy (Ndarray)
❖ Un tableau NumPy peut être multidimensionnel ce qui est représenté comme
listes de listes et il a des attributs comme la dimension, la taille, le type d’éléments
et la forme.
Pr A.BENGHABRIT 27
Tableaux NumPy (Ndarray)
❖ Un tableau NumPy peut être également créer directement via différentes fonction
de NumPy.
Pr A.BENGHABRIT 28
Copie et vue d’un Ndarray
Il est possible de créer des copies d’un
tableau NumPy, en extraire un sous-tableau
ou encore créer ce qu’on appelle une vue.
Une vue d’un tableau consiste à générer un
sous-tableau d’un Ndarry et que chaque
changement à son niveau est pris en
considération dans le tableau initial. Pour
éviter une telle situation il faut spécifier au
moment de génération du sous-tableau
qu’il est question d’une copie.
Pr A.BENGHABRIT 29
Indexation et Slicing d’un Ndarray
❖ L’indexation et le slicing des Ndarray
restent identiques à ceux des listes.
L’accès à des éléments se fait via [] et
en combinant les []. On peut accéder à
un ensemble d’éléments
: Tab[début:fin:pas].
Pr A.BENGHABRIT 33
Split d’un Ndarray
❖ Un tableau peut être casser (split) en
plusieurs sous tableaux en utilisant la
fonction split() et en y déterminant
les indices où la casse s’effectuera.
Pr A.BENGHABRIT 34
Calcul sur les Ndarray
On peut effectuer des opération sur des
ndarray en exploitant les opérateurs
classiques sinon les fonctions propres à
numpy qui permettent un traitement/calcul
plus optimisé
(https://docs.scipy.org/doc/numpy-
1.13.0/reference/ufuncs.html) ou encore
ceux propres à ndarray
(https://docs.scipy.org/doc/numpy-
1.13.0/reference/generated/numpy.ndarray.
html). Pr A.BENGHABRIT 35
Calcul sur les Ndarray
Pr A.BENGHABRIT 36
Bibliothèque Pandas
❖ Tout comme Numpy, la bibliothèque Pandas est nécessaire et importante pour la
data science en Python étant spécialisée dans la manipulation de données.
❖ Plus précisément, elle se base sur la notion de dataframe qui peut être créer à partir
de liste ou dictionnaire. Pandas permet d'opérer rapidement et optimalement des
opérations sur cette structure, qui est similaire et inspiré de l'objet dataframe sur
lequel se base le langage R.
❖ Pandas se base en grande partie sur Numpy dans son fonctionnement interne et
utilise par la suite des données au format ndarray.
Pr A.BENGHABRIT 37
Séries avec Pandas
❖ Il existe deux type de données principales avec Pandas, les séries et les
dataframes qui permettent de gérer tous les cas de datascience sur données
réelles de tout domaine.
❖ Une série est un objet unidimensionnel qui représente les valeurs d’une
variable statistique, est de type pandas.Series() et on peut lui fournir des noms
comme indices.
❖ La méthode describe() peut être utiliser pour retourner les statistique basiques
sur la série sinon ces derniers peuvent être obtenus en utilisant leurs propres
méthodes.
Pr A.BENGHABRIT 38
Séries avec Pandas
Pr A.BENGHABRIT 39
DataFrames avec Pandas
Un dataframe, pandas.DataFrame(), est une
structure qui décrit les individus (lignes
nommées) par des variables (colonnes
nommées) qui peuvent être de types
différents.
https://pandas.pydata.org/docs/reference/
api/pandas.DataFrame.html
Pr A.BENGHABRIT 40
DataFrames avec Pandas
Un dataframe peut être
créer à partir de séries
pandas et dictionnaire,
sachant qu’une série est une
colonne.
Pr A.BENGHABRIT 41
DataFrames avec Pandas
❖ Un dataframe peut également être créer à
partir d’un fichier via la fonction généraliste
read_table() à laquelle il faut spécifier le
séparateur. Il existe des fonction plus
spécifique comme read_csv().
Pr A.BENGHABRIT 44
Explorer un DataFrame
On peut ajouter des colonnes comme on
peut supprimer des lignes et des colonnes
via la fonction drop().
Pr A.BENGHABRIT 45
Explorer un DataFrame
La fonction drop() permet de supprimer les
NAN qu’on peut détecter via la fonction
isna(). On peut trier via la fonction sort().
Pr A.BENGHABRIT 46
Explorer un DataFrame
❖ La fonction describe() avec le paramètre
include="all" permet de décrire toutes les colonnes
numériques ou pas.
Pr A.BENGHABRIT 47
Explorer un DataFrame
Pr A.BENGHABRIT 48
Explorer un DataFrame
❖ Si on souhaite faire des manipulations
par rapport aux modalités d’une variable
(colonne), la fonction groupby() est
exploitable.
Pr A.BENGHABRIT 49
Bibliothèque Matplotlib
Matplotlib est une librairie puissante permettant de générer des graphiques dans
différents formats. Pour ce faire, nous travaillerons avec le module Pyplot.
La fonction plot() sert à dessiner des graphiques qu’on peut paramétrer pour bien
gérer ces derniers.
Pr A.BENGHABRIT 50
Module Pyplot
Pr A.BENGHABRIT 51
Module Pyplot
❖ On peut créer directement des nuages de points via la fonction scatter() pour
une meilleure visualisation (couleur) avec les paramètres c et cmap
(https://matplotlib.org/stable/tutorials/colors/colormaps.html).
Pr A.BENGHABRIT 54
Bibliothèque Seaborn
❖ Seaborn est une librairie basée sur Matplotlib, une couche qui offre plus de
fonctionnalités. Plus précisément, Seaborn permet d’obtenir des graphiques plus
esthétiques, de créer des analyses statistiques sophistiquées et ses fonctions interagissent
avec les Dataframes.
❖ Ces derniers peuvent être utilisés pour représenter différentes variables en même temps
et peuvent être paramétrer (https://seaborn.pydata.org/tutorial/color_palettes.html)
Pr A.BENGHABRIT55
Bibliothèque Seaborn
Pr A.BENGHABRIT 56
Bibliothèque Seaborn
Pr A.BENGHABRIT 57