0% ont trouvé ce document utile (0 vote)
42 vues57 pages

Programmer en Python Pour La DS

Le document présente Python comme un langage essentiel pour la science des données, soulignant ses bibliothèques comme Anaconda et Jupyter Notebook qui facilitent l'analyse et la visualisation des données. Il aborde également des concepts fondamentaux de Python tels que les variables, les types de données, les structures de données comme les listes et les dictionnaires, ainsi que les bibliothèques NumPy et Pandas pour le calcul scientifique et la manipulation de données. Enfin, il décrit des opérations spécifiques sur les tableaux NumPy et les dataframes de Pandas, essentielles pour le traitement efficace des données.

Transféré par

omarjester29
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues57 pages

Programmer en Python Pour La DS

Le document présente Python comme un langage essentiel pour la science des données, soulignant ses bibliothèques comme Anaconda et Jupyter Notebook qui facilitent l'analyse et la visualisation des données. Il aborde également des concepts fondamentaux de Python tels que les variables, les types de données, les structures de données comme les listes et les dictionnaires, ainsi que les bibliothèques NumPy et Pandas pour le calcul scientifique et la manipulation de données. Enfin, il décrit des opérations spécifiques sur les tableaux NumPy et les dataframes de Pandas, essentielles pour le traitement efficace des données.

Transféré par

omarjester29
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 57

A.

U : 2024/2025

Programmer en Python pour


la Data Science

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.

❖ Python dispose de bibliothèques pour le chargement des données, la visualisation, les


statistiques, le traitement du langage naturel, le traitement des images, etc. Cette vaste
boîte à outils offre aux spécialistes des données un large éventail de fonctionnalités
générales et spécifiques.

❖ L'un des principaux avantages de l'utilisation de Python est la possibilité d'interagir


directement avec le code, à l'aide d'un terminal ou d'autres outils comme le Jupyter
Notebook.
Pr A.BENGHABRIT 2
Introduction
❖ L'apprentissage automatique et l'analyse des données sont des processus
fondamentalement itératifs, dans lesquels les données sont le moteur de l'analyse. Il est
essentiel pour ces processus de disposer d'outils qui permettent une itération rapide et
une interaction facile.

❖ En tant que langage de programmation généraliste, Python permet également la création


d'interfaces graphiques (GUI) et de services Web complexes, ainsi que l'intégration dans
des systèmes existants.

❖ Il est recommandé d'utiliser une distribution Python pré-packagée, comme Anaconda,


qui fournira les paquets nécessaires pour les différentes tâches.

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.

Le notebook créé ne contenant


qu’une seule cellule. On peut
ajouter une cellule avant en
cliquant sur b (before) ou après
en cliquant sur a (after) ou
Pr A.BENGHABRIT supprimer avec dd. 6
Jupyter Notebook Création d’un
fichier .ipynb
(extension des
notebooks
python) dans le
dossier de travail
en question.

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).

❖Pour transformer une variable entière en


réelle on utilise la fonction float() et pour
faire l’inverse on utilise la fonction int().

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…

❖ Il en est de même pour les opérateurs de


comparaison : ==, !=, >, <, >=, <= et les opérateurs
logiques : and, or, not. Il est également possible de
chainer les comparateurs : a < b < c.

❖ Pour chercher la signification d’une fonction on


peut utiliser la fonction help().

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é.

❖ Une liste est déclarée par une série de valeurs


séparées par des virgules, et le tout encadré par
des crochets.

❖ L’indexation pour une liste commence par 0 et le


dernier élément est indexé par -1.

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é.

❖ On peut également récupérer plusieurs sous


listes et/ou récupérer des éléments avec un
saut/pas donné : Notes[::3] pour afficher les
éléments de la liste Notes du début à la fin
avec un pas de 3.

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();

❖ La valeur maximale max()

❖ La valeur minimale min().

❖ Pour concaténer des listes, l’utilisateur de


l’opérateur + suffira.

Pr A.BENGHABRIT 17
Manipulation des listes
❖ Les listes contiennent différentes méthodes qui
permettent de les manipuler :

❖ Append pour ajouter un élément à la fin d’une liste;

❖ Insert pour ajouter un élément à une position précise;

❖ Sort pour trier une liste ayant un paramètre reverse


qui est par défaut en False et quand il est en True le tri
sera en ordre décroissant.

❖ Reverse pour inverser l’ordre des éléments d’une liste;

❖ Count pour compter le nombre d’occurrences d’un


élément d’une liste.

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.

❖ Ils sont généralement utilisés lorsqu’on


souhaite qu’un résultat généré soit
reproductible mais non transformable
même pas par erreur.

❖ On peut par contre récupérer leurs


contenus.
Pr A.BENGHABRIT 19
Création de fonction
La syntaxe Python pour la
définition d’une fonction est :

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.

❖ Dans scikit-learn, bibliothèque libre Python destinée à l'apprentissage automatique


(Machine Learning), le tableau NumPy est la structure de données fondamentale.
Toutes les données à utiliser devront être converties en tableau NumPy.

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.

❖ Les tableaux Numpy se manipulent généralement comme les listes en Python, à la


différence que la bibliothèque NumPy permet d’utiliser des fonctions plus performantes et
de rendre les opérations beaucoup plus efficaces, surtout au niveau des tableaux de large
taille et plus complexes que les listes (A consulter pour tout détail sur Ndarray :
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.html ).

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].

❖ Si le pas est négatif, le début et la fin


du slice sont inversés. On peut utiliser
cette propriété pour inverser un
tableau.
Pr A.BENGHABRIT 30
Exploration et Filtrage d’un Ndarray
❖ Randint() est une fonction du sous-module
Random() de NumPy permettant de créer
des nombres aléatoires. Elle permet de
créer des tableaux de valeurs aléatoires
tout en précisant la valeur maximale que
peuvent avoir ses éléments et la forme du
tableau.

❖ np.where retourne parmi tous les


éléments d'un tableau les index vérifiant la
condition en question. Pr A.BENGHABRIT 31
Concaténation des Ndarray
❖ La concaténation des tableaux
se fait via la fonction
concatenate() de numpy.

❖ Si les tableaux sont de


dimensions différentes, on peut
utiliser, au lieu de concatenate(),
soit vstack() pour une
assemblage vertical ou hstack()
pour une assemblage
horizontal. Pr A.BENGHABRIT 32
Concaténation des Ndarray

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.

❖ Pour un tableau de deux dimension,


on peut utiliser les fonctions hsplit()
et vsplit() selon le choix du split
horizontal ou vertical.

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().

❖ Pour écrire dans un fichier csv, on utilise la


focntion : to_csv().

Jeux de données extrait de Kaggle :


https://www.kaggle.com/lava18/google-play-
store-apps
Pr A.BENGHABRIT 42
Accès aux éléments d’un DataFrame
❖ On peut modifier les indices lignes en
noms en utilisant la fonction
set_index().

❖ On peut accèdes aux éléments d’un


dataframe par ses indices en utilisant la
fonction iloc et par ses noms en
utilisant loc.

❖ La fonction head() permet d’afficher


les premières lignes du dataframe et
tail() les dernières lignes.
Pr A.BENGHABRIT 43
Accès aux éléments d’un DataFrame

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.

❖ La fonction apply permet d’appliquer une


instruction sur une ligne ou colonne et on peut
pour ce faire créer une fonction sur le vif via
l’instruction lambda.

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).

❖ Pour changer la taille des graphiques, il faut modifier le paramètre figure.figsize


de la fonction rcParams().

❖ Nous enregistrons les graphiques en utilisant la fonction savefig().

❖ Le diagramme en bâtons, la boite à moustache et le camembert sont obtenus en


appelant respectivement les fonction bar(), boxplot() et pie() qu’on peut
paramétrer pour changer de couleur par exemple.
Pr A.BENGHABRIT 52
Module Pyplot

Si l’on souhaite combiner plusieurs graphiques en


une seule fenêtre graphique, la fonction subplot()
est utilisable.
Pr A.BENGHABRIT 53
Module Pyplot

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.

❖ La bibliothèque propose des graphiques différents : boxplot() (boite à moustache),


countplot() ou encore barplot() (le diagramme en bâtons), catplot() (nuage de points),
distplot() (histogramme), jointplot() (traçage de diagramme bi-variée entre deux variables
ainsi que leurs histogrammes) et pairplot() (pour étudier les relations entre les variables
deux à deux).

❖ 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

Vous aimerez peut-être aussi