Python pour la Science des Données PDF

Summary

Ce document couvre les bases de la science des données en utilisant Python, et explique comment Anaconda peut être utilisé pour développer des applications de science des données. Il inclut une introduction aux concepts, aux bibliothèques comme NumPy, scikit-learn, pandas, et comment un module important comme le module NumPy peut être utilisé.

Full Transcript

Python for Data Science Par. Dr CHAIBI Hasna A.U 2023-2024 1 Introduction Nous vivons dans un monde noyé par les données. Les sites web suivent à Dr. H.CHAIBI la trace chaque clic de chaque utilisateur. Tous les jours, votre s...

Python for Data Science Par. Dr CHAIBI Hasna A.U 2023-2024 1 Introduction Nous vivons dans un monde noyé par les données. Les sites web suivent à Dr. H.CHAIBI la trace chaque clic de chaque utilisateur. Tous les jours, votre smartphone enregistre votre localisation et votre vitesse à la seconde près. Les voitures intelligentes collectent les habitudes de conduite, les maisons intelligentes collectent les habitudes de vie et les marqueteurs intelligents collectent les habitudes d’achat. La Data Science est la science des données. C’est la discipline qui permet à d’explorer et d’analyser les données brutes pour les transformer en SUPMTI 2022/2023 informations précieuses permettant de résoudre des problèmes et de prendre des décision. Introduction La Data Science, ou science des données, désigne un mélange Dr. H.CHAIBI disciplinaire d’inférence de données, de développement d’algorithmes et de technologie. Ces disciplines ont pour but de résoudre des problèmes analytiques complexes. La Data Science permet de découvrir des connaissances au sein des données. En plongeant dans ces informations, l’utilisateur peut découvrir et comprendre des tendances et des comportements SUPMTI 2022/2023 complexes. Il s’agit de faire remonter à la surface des informations pouvant aider les entreprises à prendre des décisions plus intelligentes. Introduction Python possède plusieurs fonctionnalités qui le rendent Dr. H.CHAIBI particulièrement bien adapté pour apprendre (et pratiquer) la data science : il est gratuit ; il est assez facile à coder (et aussi à comprendre) ; il dispose de nombreuses bibliothèques en lien avec la data science. SUPMTI 2022/2023 Introduction Il existe plusieurs bibliothèques, frameworks, modules et boîtes à Dr. H.CHAIBI outils dédiés aux data sciences pour mettre en place les algorithmes et les techniques de data science les plus courants (et aussi les moins courants d’ailleurs). Si vous devenez data scientist, vous pénétrerez dans l’intimité de NumPy, scikitlearn, pandas, seaborn, Matplotlib et d’autres SUPMTI 2022/2023 bibliothèques. Prise en main de l’environnement de développement. Anaconda, qu’est-ce que c’est ? Dr. H.CHAIBI ▪ Anaconda est une distribution libre et open source des langages de programmation Python et R appliqué au développement d'applications dédiées à la science des données et à l'apprentissage automatique (traitement de données à grande échelle, analyse prédictive, calcul scientifique), qui vise à simplifier la gestion des paquets et de déploiement. SUPMTI 2022/2023 ▪ En installant Anaconda, vous installerez Python, Jupyter Notebook (que nous présenterons plus en détail aux prochains slides) et des dizaines de packages scientifiques, dont certains indispensables à la science de données Prise en main de l’environnement de développement. Anaconda, qu’est-ce que c’est ? Anaconda c’est : Dr. H.CHAIBI Une solution open source tout-en-un Des packages et des outils inclus Un gestionnaire d’environnements open source Anaconda met à votre disposition une solution vous permettant d’installer tous l’écosystème data avec notamment : une installation de python les packages de data science tels que numpy, pandas, scikit-learn… SUPMTI 2022/2023 Des IDE de dernière génération tels que Jupyter (JupyterLab et Jupyter Notebooks) ou Spyder l’outil conda pour gérer les environnements et les répertoires de packages Prise en main de l’environnement de développement. Anaconda, qu’est-ce que c’est ? Jupyter Notebook est une application web qui vous Dr. H.CHAIBI permet de stocker des lignes de code Python, les résultats de l’exécution de ces dernières (graphiques, tableaux, etc.) et du texte formaté. Jupyter Notebook est un outil puissant qui permet aux utilisateurs du langage Python de créer et de partager SUPMTI 2022/2023 des documents interactifs contenant du code dynamique et exécutable, des visualisations de contenus, des textes de documentation et des équations. Les modules Introduction Définition : Dr. H.CHAIBI ▪ Un module est un fichier contenant des sous-programmes regroupés de façon cohérente ▪ Le nom du fichier aura comme suffixe.py Structure d’un projet: Plusieurs modules de fonctions et un module particulier, dit “main”, où l’on définit les variables du projet et où l’on utilise les fonctions des différents modules. Trois formats pour importer SUPMTI 2022/2023 ▪ import NomDuModule ▪ from NomDuModule import * ▪ from NomDuModule import uneFonction Les modules import … import nomModule Dr. H.CHAIBI ▪ Importe tout le contenu du fichier nomModule.py ▪ Pour faire référence à quelque chose dans le fichier il faut ajouter le nom du module « Exemple » avant le nom de l'entité utilisée. Exemple : import Exemple Exemple.doubler(n) print(Exemple.tripler(n)) SUPMTI 2022/2023 Attention tout le contenu du module sera chargé en mémoire. Les modules from … import … from nomModule import * Dr. H.CHAIBI ▪ Tout le contenu du fichier nomModule.py est importé et chargé en mémoire ▪ Tout le module est dans le namespace courant, il est donc inutile de faire préfixé toutes les entités présentes dans le fichier par le nom du module Exemple: from Exemple import * tripler(n) doubler(n) SUPMTI 2022/2023 Les modules from … import … from nomModule import item Dr. H.CHAIBI ▪ Seul l'élément item est importé du fichier nomModule.py. ▪ Comme dans le cas précédent il n'est pas nécessaire de faire préfixer le nom de cet item par le nom du module ▪ Attention à l'écrasement d'une entité de même nom déjà ▪ présente dans le namespace courant. SUPMTI 2022/2023 Exemple : from Exemple import tripler tripler(n) Les modules from … import … Exemple Dr. H.CHAIBI SUPMTI 2022/2023 Les modules de base pour Data science 14 Les modules de base pour Data science Les modules de base pour Data science: Dr. H.CHAIBI import math import random import statistics SUPMTI 2022/2023 Les modules de base pour Data science Le module math et statistics # Module math #Module statistics Dr. H.CHAIBI SUPMTI 2022/2023 Les modules de base pour Data science Le module random Il existe de nombreux phénomènes dus au hasard dans la réalité, et il Dr. H.CHAIBI peut être utile, parfois numériquement, de pouvoir modéliser ces phénomènes pour balayer les différents cas possibles. En Python, le module random contient plusieurs fonctions pour pouvoir générer des nombres ou des suites de nombres aléatoires. La fonction de base de génération de nombre aléatoire SUPMTI 2022/2023 s’appelle random(). Elle va générer un float aléatoire compris entre 0 et 1 non inclus. Les modules de base pour Data science Le module random # Module random Dr. H.CHAIBI SUPMTI 2022/2023 Les modules de base pour Data science Le module random # Module random Dr. H.CHAIBI Choisissez aléatoirement dans une liste : sous-échantillonnage Le module random propose une fonction permettant de faire la sélection directement sur la liste : la fonction choice L’évolution de celle-ci est la fonction choices, permettant cette fois-ci de sélectionner un échantillon de la liste initiale, SUPMTI 2022/2023 Les modules de base pour Data science Le module random # Module random Dr. H.CHAIBI SUPMTI 2022/2023 Le package Un package est un regroupement de différents modules. Dr. H.CHAIBI SUPMTI 2022/2023 Les fonctions de base de python Dr. H.CHAIBI SUPMTI 2022/2023 Les fonctions de base pour Data Science Les fonctions les plus importante pour Data Science Dr. H.CHAIBI SUPMTI 2022/2023 Les fonctions de base pour Data Science Les fonctions les plus importante pour Data Science Dr. H.CHAIBI SUPMTI 2022/2023 Les fonctions de base pour Data Science Les fonctions de conversion: Dr. H.CHAIBI 1) Des variables: str(), int(), float() SUPMTI 2022/2023 Les fonctions de base pour Data Science Les fonctions de conversion: Dr. H.CHAIBI 2) Des structures: list(), tuple(), dict() SUPMTI 2022/2023 Le module NUMPY 27 Le module NUMPY NDArray NumPy est la librairie Python dédiée au calcul scientifique fournissant Dr. H.CHAIBI des fonctions très performantes de calcul, mais aussi des structures de données, tout aussi performantes. En Data Science, il est essentiel d'avoir des structures adaptées pour stocker et manipuler de grandes quantités de données. C'est là qu'intervient NumPy, qui intègre une nouvelle structure de données en Python, les ndarrays (tableaux à N dimensions, en français, N représentant un chiffre), qui sont des tableaux multidimensionnels ou SUPMTI 2022/2023 matrices. Il est important de noter que cette structure de données permet de stocker des données uniquement de même type Le module NUMPY NDArray NumPy peut gérer de très gros tableaux et est très performante en Dr. H.CHAIBI temps de calcul sur ces tableaux : les ndarrays prennent en effet moins de place mémoire que d'autres objets Python, comme par exemple les listes. C'est pour cela que cette librairie a été développée et qu'elle est si utilisée : elle est très performante. C'est également pour cette raison que de nombreuses librairies ont été développées au-dessus de celle- ci, telle que Pandas, que nous verrons plus tard dans ce cours SUPMTI 2022/2023 Le module NUMPY NDArray Dr. H.CHAIBI Les ndarrays de NumPy peuvent être unidimensionnels (aussi appelés 1D array, ce qu'on peut voir comme une liste), bidimensionnels (2D array) donc un tableau avec des lignes et des colonnes, ou encore des tableaux à plus de deux dimensions (3D array, 4D array, 5D array...),. SUPMTI 2022/2023 Le module NUMPY NDArray Lorsque vous souhaitez effectuer des opérations mathématiques ou logiques rapides sur un grand jeu de données, Dr. H.CHAIBI NumPy est votre allié. Pour pouvoir utiliser NumPy sous Python, il suffit de charger la librairie sous Jupyter, celle-ci étant déjà installée dans la distribution Anaconda SUPMTI 2022/2023 NDArray est un objet qui comporte une série d’attributs et des méthodes Le module NUMPY NDArray – les attributs Dr. H.CHAIBI SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs Dr. H.CHAIBI SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut shape Dr. H.CHAIBI Shape trouve la forme d’un tableau. Par forme, nous voulons dire qu’il aide à trouver les dimensions d’un tableau. Il est un tuple car nous ne pouvons pas modifier un tuple tout comme nous ne pouvons pas modifier les dimensions d’un tableau. SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut shape Dr. H.CHAIBI SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut shape Dr. H.CHAIBI SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut size Dr. H.CHAIBI La taille d’un tableau est le nombre total d’éléments dans le tableau. L’attribut size donne la taille d’un tableau. SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut T Dr. H.CHAIBI La transposé d’un tableau à deux est obtenue par l’attribut T SUPMTI 2022/2023 Le module NUMPY NDArray – les attributs ❑L’attribut ndim Dr. H.CHAIBI Ndim donne le nombre de dimension contenues dans NdArray. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs np.zeros(shape) np.linspace(début, fin, quantité) Dr. H.CHAIBI np.empty(shape) np. arrange(début, fin ,pas) np.ones(shape) np.eye() SUPMTI 2022/2023 np.full(shape,value) np.random.randn(shape) Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑zeros() np.zeros() est utilisé pour créer un tableau dont tous les éléments sont 0 SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑empty() Dans certains cas, vous voulez seulement initialiser un tableau avec la forme spécifiée et vous ne vous souciez pas des données d’initialisation à l’intérieur. Vous pouvez utiliser np.empty pour obtenir une initialisation plus rapide, mais gardez à l’esprit que cela ne garantit pas que la valeur du tableau créé soit 0. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑zeros_like() Supposons que nous ayons déjà un tableau et que nous voulions créer un tableau de zéros ayant la même forme. Nous pourrions utiliser la méthode traditionnelle pour créer ce nouveau tableau. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑ones() Comme pour les zeros, nous pourrions aussi créer un tableau rempli de uns. La syntaxe et les paramètres de np.ones() sont identiques à ceux de np.zeros(). SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑eye() Le tableau diagonal est le tableau 2-D avec des uns sur la diagonale et des zéros ailleurs. Il peut être créé avec la méthode np.eye() SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑full() Permet de créer un tableau rempli de par un nombre. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑random.randn() numpy.random.randn(10) : array 1d de 10 nombres d'une distribution gaussienne standard (moyenne 0, écart-type 1). numpy.random.randn(10, 10) : array 2d de 10 x 10 nombres d'une distribution gaussienne standard. numpy.random.randint(1, 5, 10) : une array 1d de 10 nombres entiers entre 1 et 5, 5 exclus. numpy.random.random_integers(1, 5, 10) : une array 1d de 10 nombres entiers entre 1 et SUPMTI 2022/2023 5, 5 inclus. numpy.random.random_sample(7) : renvoie 7 valeurs aléatoires dans l'intervalle [0,1[. Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑random.randn() SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑linspace(début, fin ,q) Renvoie des nombres uniformément espacés sur un intervalle [début et fin]. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑arrange(début, fin ,pas) Renvoie des nombres uniformément espacés sur un intervalle [début et fin]. SUPMTI 2022/2023 Le module NUMPY NDArray – les constructeurs Dr. H.CHAIBI ❑Tableau de trois dimension SUPMTI 2022/2023 Le module NUMPY NDArray – type de données Dr. H.CHAIBI ❑dtype Le type de données - dtype dans NumPy est différent des types de données primitives dans Python, par exemple, dtype a le type avec une résolution plus élevée qui est utile dans le calcul des données. SUPMTI 2022/2023 Le module NUMPY NDArray – type de données Dr. H.CHAIBI ❑dtype Le type de données - dtype dans NumPy est différent des types de données primitives dans Python, par exemple, dtype a le type avec une résolution plus élevée qui est utile dans le calcul des données. np.float16 np.float64 𝝅 = 𝟑. 𝟏𝟒 𝝅 = 𝟑. 𝟏𝟒𝟏𝟓𝟗𝟐𝟔𝟓𝟑 SUPMTI 2022/2023 𝟓𝟖𝟗𝟕𝟗𝟑 Moins de précis Plus précis Plus rapide Moins rapide Le module NUMPY NDArray – type de données Dr. H.CHAIBI ❑dtype Lors de la création d’une nouvelle donnée ndarray, vous pouvez définir le type de données de l’élément par des constantes de type chaîne ou de données dans la bibliothèque NumPy. SUPMTI 2022/2023 Le module NUMPY NDArray – append Dr. H.CHAIBI ❑append Numpy a aussi la fonction append pour ajouter des données à un tableau, tout comme l’opération append à list en Python. Mais dans certains cas, append dans NumPy est aussi un peu similaire à la méthode extend dans list en Python. SUPMTI 2022/2023 Le module NUMPY NDArray – hstack Dr. H.CHAIBI ❑hstack Empilez les tableaux en séquence horizontalement (par colonne). Cela équivaut à la concaténation le long du deuxième axe, sauf pour les tableaux 1D où il concatène le long du premier axe. SUPMTI 2022/2023 C=np.hstack((A , B)) C= Le module NUMPY NDArray – vstack Dr. H.CHAIBI ❑vstack Empilez les tableaux en séquence verticale (par rangée). Cela équivaut à la concaténation le long du premier axe après que les tableaux 1-D de forme (N,) ont été remodelés en (1,N). C=np.vstack((A , B)) SUPMTI 2022/2023 C= Le module NUMPY NDArray – concatenate Dr. H.CHAIBI ❑concatenate concatène plusieurs tableaux sur un axe spécifié. Elle accepte une séquence de tableaux comme paramètre et les réunit en un seul tableau. SUPMTI 2022/2023 Le module NUMPY NDArray – concatenate Dr. H.CHAIBI ❑concatenate concatène plusieurs tableaux sur un axe spécifié. Elle accepte une séquence de tableaux comme paramètre et les réunit en un seul tableau. SUPMTI 2022/2023 Le module NUMPY NDArray – vstack Dr. H.CHAIBI ❑Column_stack numpy.column_stack() La fonction est utilisée pour empiler des array 1-D sous forme de colonnes dans un array 2-D. Elle prend une séquence de array 1-D et les empile sous forme de colonnes pour créer un seul array 2-D. SUPMTI 2022/2023 C=np.column_stack((A , B)) Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Reshape et resize NumPy a deux fonctions (et aussi des méthodes) pour changer les formes des tableaux - reshape et resize. Elles ont une différence significative. Elle convertit un vecteur de 8 éléments en un tableau de la forme de (2, 4). Elle pourrait être exécutée avec succès parce que la SUPMTI 2022/2023 quantité d’éléments avant et après le reshape est identique. Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Reshape et resize NumPy a deux fonctions (et aussi des méthodes) pour changer les formes des tableaux - reshape et resize. Elles ont une différence significative. Elle soulève l’erreur ValueError si les quantités sont différentes SUPMTI 2022/2023 Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Reshape et resize resize est un peu similaire à reshape dans le sens de la conversion de forme. Mais il a quelques différences significatives. Si le nombre d’éléments du tableau cible n’est pas le même que celui du tableau original, il forcera à redimensionner mais ne provoquera x pas d’erreurs. Si le nouveau tableau a plus de lignes, il répétera les données du tableau original mais x SUPMTI 2022/2023 ne lèvera pas l’erreur. Si le nombre d’éléments dans le nouveau tableau est plus petit, il récupère le nombre d’éléments dont il a besoin pour remplir le nouveau tableau dans l’ordre des lignes. x Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Ravel ravel utilisée pour convertir transformer des tableaux N-dimensionnels en tableaux à dimension unique. SUPMTI 2022/2023 x Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Ravel ravel utilisée pour convertir transformer des tableaux N-dimensionnels en tableaux à dimension unique. SUPMTI 2022/2023 x Le module NUMPY NDArray – redimensionnement Dr. H.CHAIBI ❑Roll utilisée pour dérouler les éléments du tableau le long d’un axe spécifié. (axis=0: le long des x lignes). x SUPMTI 2022/2023 Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑Indexation et slicing Accéder à des éléments ou à des sous-tableaux va nous permettre de leur appliquer des fonctions vectorisées la manière d’accéder aux éléments d’un tableau numpy dépend de la forme du tableau (shape) 1- accès à un tableau de dimension 1 (Indexing) A A ……… A SUPMTI 2022/2023 x Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑Indexation et slicing 1- accès à un tableau de deux dimension (Indexing) A[ligne, colonne] Axis 1 9 Axis 2 SUPMTI 2022/2023 x A[1, 2]=9 Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑slicing A[ligne, colonne] A[Début : fin , Début : fin] A[0 , : ] x SUPMTI 2022/2023 A[ : , 0] Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑slicing A[ligne, colonne] A[Début : fin , Début : fin] A[: , 2 : 5 ] A[ 2:5 , 2: 5] A[ : , -2: ] x SUPMTI 2022/2023 Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑slicing A[ligne, colonne] A[Début : fin : pas , Début : fin : pas ] A[: : 2, : : 2 ]=2 x 2 2 2 SUPMTI 2022/2023 2 2 2 2 2 2 Le module NUMPY NDArray – Accès aux éléments d’un tableau Dr. H.CHAIBI ❑slicing x x SUPMTI 2022/2023 Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques Axis 1 Axis 0 A.sum(axis=1) A.sum(axis=0) x SUPMTI 2022/2023 Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques A.sum(axis) A.cumsum(axis) A.prod(axis) A.cumprod(axis) A.min(axis) A.max(axis) x A.sort(axis) x SUPMTI 2022/2023 A.argmin (axis) A.argmax (axis) A.argsort (axis) Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques A.argsort (axis) 0 1 2 3 4 5 6 22 9 0 4 7 6 14 x 2 3 5 4 1 6 0 SUPMTI 2022/2023 0 4 6 7 9 14 22 Argsort() retourne les positions dans l’ordre de tri du tableau A, sans modifier le tableau Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques Coefficient de corrélation x SUPMTI 2022/2023 Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques Unique: récupère toutes les valeurs uniques dans le tableau NumPy donné et trie ces valeurs uniques. x SUPMTI 2022/2023 Le module NUMPY NDArray – Dr. H.CHAIBI ❑Calcul Mathématiques Nan: Le nan est une constante qui indique que la valeur donnée n’est pas légale - Not a Number. Notez que nan et NULL sont deux choses différentes. La valeur NULL indique quelque chose qui n’existe pas et qui x est vide. En Python, nous traitons de telles valeurs très fréquemment dans différents objets. Il est donc nécessaire de détecter de telles constantes. SUPMTI 2022/2023 En Python, nous avons la fonction isnan(), qui peut vérifier les valeurs nan. Et cette fonction est disponible en deux modules - NumPy et math. La fonction isna() du module pandas peut également vérifier les valeurs nan.

Use Quizgecko on...
Browser
Browser