Python pour la science des données
Python pour la science des données
➢ Dans le cadre de la science des données (data science), il s’avère être un outil de premier plan
permettant d’articuler des projets complexes
➢ Python est aujourd’hui l’outil idéal pour mettre en place des prototypes et un grand allié du Big
Data, du Machine Learning et du Deep Learning.
Introduction
C’est quoi la data science ?
« Les termes de data science et de data scientist sont assez récents. »
➢ La science des données consiste à résoudre des problèmes complexes en utilisant de grands volumes de
données.
➢ Le data scientist est celui qui mettra en place et fera fonctionner des processus de data science. Son rôle est
de faire le lien entre des problèmes métiers et des solutions par le biais d’algorithmes et d’infrastructures
modernes.
➢ À ce titre, il devra avoir une vision assez large du cadre opérationnel, technique et théorique.
Il faut qu’il soit très technique mais il faut aussi garder en tête la capacité à résoudre des problèmes qui
n’avaient pas de solutions opérationnelles.
Il doit avoir de bonnes connaissances en statistique, en machine learning, mais aussi des compétences
techniques en développement et une bonne appréhension des environnements de traitement.
Introduction
Historique du langage python :
➢ Python est un langage de programmation, dont la première version est sortie en 1991. Créé par
Guido van Rossum, il a voyagé du Macintosh de son créateur, qui travaillait à cette époque au
Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se voir associer une organisation à
but non lucratif particulièrement dévouée, la Python Software Foundation, crée en 2001.
« Ce langage a été baptisé ainsi en hommage à la troupe de comiques les Monty Python ».
Introduction
C’est quoi Python ?
➢ Python est un langage simple qui doit vous permettre de vous concentrer sur la mise en place de
processus automatisés en data science. Néanmoins, il est nécessaire de bien maîtriser son
environnement.
➢ Il est, en outre, très facile d'étendre les fonctionnalités existantes, comme nous allons le voir.
Ainsi, il existe ce qu'on appelle des bibliothèques qui aident le développeur à travailler sur des
projets particuliers.
Introduction
Avantages de Python :
➢ facile à apprendre, à lire, à comprendre et à écrire ;
➢ portable (fonctionne sous de nombreux systèmes d'exploitation) ;
➢ adapté aussi bien pour des scripts, des petits ou gros projets ;
➢ doté d'une façade objet bien conçue et puissante ;
➢ possède une communauté active autour du langage ;
➢ crée des interfaces graphiques ;
➢ Permet de circuler des informations au travers d'un réseau ;
Introduction
Un langage de programmation interprété :
➢ Python est un langage de programmation interprété, c'est-à-dire que les instructions que vous lui
envoyez sont « transcrites » en langage machine au fur et à mesure de leur lecture. D'autres
langages (comme le C / C++) sont appelés « langages compilés » car, avant de pouvoir les
exécuter, un logiciel spécialisé « compilateur » se charge de transformer le code du programme
en langage machine.
On appelle cette étape la « compilation ». À chaque modification du code, il faut rappeler une
étape de compilation.
Introduction
Les avantages du langage de programmation interprété :
➢ La simplicité car (on ne passe pas par une étape de compilation avant d'exécuter son programme
➢ La portabilité (un langage tel que Python est censé fonctionner aussi bien sous Windows que sous
Linux ou Mac-OS, et on ne devrait avoir à effectuer aucun changement dans le code pour le
passer d'un système à l'autre).
➢ Cela ne veut pas dire que les langages compilés ne sont pas portables ! Mais on doit utiliser des
compilateurs différents sous un système à l'autre, certaines instructions ne sont pas compatibles,
voir se comportent différemment.
Introduction
Les avantages du langage de programmation interprété :
➢ En contrepartie, un langage compilé se révélera bien plus rapide qu'un langage interprété (la
traduction à la volée de votre programme ralentit l'exécution), bien que cette différence tende à
se faire de moins en moins sentir au fil des améliorations. De plus, il faudra installer Python sur le
système d'exploitation que vous utilisez pour que l'ordinateur puisse comprendre votre code.
=> Quand un langage de programmation est mis à jour, les développeurs se gardent bien de
supprimer ou de trop modifier d'anciennes fonctionnalités. L'intérêt est qu'un programme qui
fonctionne sous une certaine version marchera toujours avec la nouvelle version en date.
Introduction
Python & Data Science :
➢ L’émergence de la data science est récente, et ces nouveaux usages de la donnée ont souvent eu
des difficultés à trouver des outils adaptés. En effet, le data scientist se doit d’être un bon
développeur tout en restant un bon analyste de données. Il a fallu opter pour un outil qui
permette de combiner cette demande de plus en plus forte de développement et
d’automatisation; avec la nécessité d’avoir une boîte à outils adaptée aux applications data.
➢ Donc plusieurs outils permettent de mettre en place les processus de data science comme (les
propriétaires tels que Matlab ou R), mais il s’avère énormément que Python (qui combine un
langage puissant et extrêmement simple) a réussi à tirer son épingle du jeu.
Introduction
Python & Data Science :
➢ La première avancée réelle a été la création du package NumPy (Numerical Python), qui est
toujours et aujourd’hui le plus important de l’écosystème Python pour la data science. D’autre
part, la mise en place d’environnements Python orientés data avec notamment Anaconda a aussi
permis à toute une communauté de se créer autour dePython et de la data. Finalement, IPython
et ses notebooks (devenus Jupyter aujourd’hui) ont parachevé l’écosystème afin de proposer à
des data scientists un langage simple mais extrêmement complet pour la data science.
➢ Cet environnement global a abouti au développement de nombreux packages et de nombreuses
API, qui font aujourd’hui de Python le meilleur outil pour automatiser des traitements de data
science.
Introduction
L’ évolution de Python :
➢ L’émergence de Python en tant que langage lié à la data science, au machine learning, au deep
learning et à l’intelligence artificielle est extrêmement rapide. Grâce à une communauté
extrêmement active sous la bannière PyData et à des évènements fréquents et nombreux (les
PyCon, les PyData, les JupyterCon, les SciPyCon…), le développement du langage prend une
tournure inattendue.
Introduction
Python vs. R :
➢ R et Python sont aujourd’hui les bases indispensables du data scientist. De plus, l’évolution rapide
des deux langages aboutit à une forme de compétition saine permettant de les rendre de plus en
plus complets pour le traitement des données. Il existe néanmoins des différences qui sont
notables et qui orienterons vos choix lors de la décision du langage à utiliser pour un projet.
➢ R est basé sur un langage créé pour des statisticiens par des statisticiens, il s’appuie avant tout sur
une approche descriptive et de modélisation des données. Les sorties de R sont des sorties dignes
des logiciels de statistiques « classiques » avec de nombreux détails. Python n’est pas basé sur
cette approche, c’est un langage de programmation visant à automatiser des processus en ne re
cherchant qu’à calculer le strict minimum.
Introduction
Python vs. R :
Propriété R Python
Traitements Peu pratique avec sa version de base mais Des possibilités avec SciPy
statistiques extrêmement efficace avec et Statsmodels mais pas
l’environnement Tidyverse son point fort
Elément I : La Programmation avec Python
SelonGraceHopper,inventeurducompilateur:
«Pourmoi,laprogrammationestplusqu’unartappliquéimportant.C’estaussiune
ambitieusequêtemenéedanslestréfondsdelaconnaissance.»
Les bases
fondamentales
du Python
Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans
l’imposer) une approche modulaire et orientée objet de la programmation. Python
est développé depuis 1989 par Guido van Rossum et de nombreux contributeurs
bénévoles.
Les bases
fondamentales
du Python
Les caractéristiques du langage Python
:
• Python est portable, non seulement sur les différentes variantes d’Unix, mais aussi sur les
OS propriétaires : Mac OS, BeOS, NeXTStep, MS-DOS et les différentes variantes de Windows.
Un nouveau compilateur, baptisé JPython, est écrit en Java et génère du bytecode Java.
• Python est gratuit, mais on peut l’utiliser sans restriction dans des projets commerciaux.
• Python convient aussi bien à des scripts d’une dizaine de lignes qu’à des projets complexes
de plusieurs dizaines de milliers de lignes.
• La syntaxe de Python est très simple, combinée à des types de données évolués
(listes, dictionnaires...), conduit à des programmes à la fois très compacts et très
lisibles.
Les bases
fondamentales
du Python
Les caractéristiques du langage Python
:
• À fonctionnalités égales, un programme Python (abondamment commenté et présenté selon les
canons standards) est souvent de 3 à 5 fois plus court qu’un programme C ou C++ (ou même Java)
équivalent, ce qui représente en général un temps de développement de 5 à 10 fois plus court et
une facilité de maintenance largement accrue.
•Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du program-
meur, par un mécanisme de comptage de références (proche, mais différent, d’un garbage collector).
• Il n’y a pas de pointeurs explicites en Python.
• Python est (optionnellement) multi-threadé.
Les bases
fondamentales
du Python
Les caractéristiques du langage Python :
• Python est orienté-objet. Il supporte l’héritage multiple et la surcharge des opérateurs. Dans
son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelles.
• Python intègre, « comme Java ou les versions récentes de C++ », un système d’exceptions,
qui permettent de simplifier considérablement la gestion des erreurs.
• Python est dynamique (l’interpréteur peut évaluer des chaînes de caractères représentant
des expressions ou des instructions Python)
• Python est orthogonal (un petit nombre de concepts suffit à engendrer des constructions
riches)
• Python est réflectif (il supporte la méta programmation, par exemple la capacité pour un objet de
se rajouter ou de s’enlever des attributs, des méthodes, ou même de changer de classe en cours
d’exécution)
Les bases
fondamentales
du Python
Les caractéristiques du langage Python :
• Python est orienté-objet. Il supporte l’héritage multiple et la surcharge des opérateurs. Dans
son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelles.
• Python intègre, « comme Java ou les versions récentes de C++ », un système d’exceptions,
qui permettent de simplifier considérablement la gestion des erreurs.
• Python est dynamique (l’interpréteur peut évaluer des chaînes de caractères représentant
des expressions ou des instructions Python)
• Python est orthogonal (un petit nombre de concepts suffit à engendrer des constructions
riches)
• Python est réflectif (il supporte la méta programmation, par exemple la capacité pour un objet de
se rajouter ou de s’enlever des attributs, des méthodes, ou même de changer de classe en cours
d’exécution)
Les bases
fondamentales
du Python
Les caractéristiques du langage Python :
• Python est et introspectif (un grand nombre d’outils de développement, comme le debugger ou
le profiler, sont implantés en Python lui-même).
•Comme Scheme ou SmallTalk, Python est dynamiquement typé. Tout objet manipulable par le
programmeur possède un type bien défini à l’exécution, qui n’a pas besoin d’être déclaré à l’avance.
▪ Python possède actuellement deux implémentations. L’une, interprétée, dans laquelle les
programmes Python sont compilés en instructions portables, puis exécutés par une machine
virtuelle (comme pour Java, avec une différence importante : Java étant statiquement typé, il est
beaucoup plus facile d’accélérer l’exécution d’un programme Java que d’un programme Python).
Java génère directement du bytecode Java.
Les bases
fondamentales
du Python
Les caractéristiques du langage Python :
•Python est extensible : comme Tcl ou Guile, on peut facilement l’interfacer avec des
bibliothèques C existantes. On peut aussi s’en servir comme d’un langage d’extension pour des
systèmes logiciels complexes.
•La bibliothèque standard de Python, et les paquetages contribués, donnent accès à une
grande variété de services : chaînes de caractères et expressions régulières, services UNIX
standards (fichiers, pipes, signaux, sockets, threads...), protocoles Internet (Web, News, FTP, CGI,
HTML...), persistance et bases de données, interfaces graphiques.
▪ Python est un langage qui continue à évoluer, soutenu par une communauté d’utilisateurs
enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre.
• Enfin, Python est un langage de choix pour traiter le XML.
Les bases
fondamentales
Le langage machine :
du Python Un ordinateur Ces séquences de
signaux obéissent à
une logique du type
2 états seulement. « 1 ou 0 » « tout ou rien »
➢ Un ordinateur est totalement incapable de traiter autre chose que des nombres binaires. Toute
information d’un autre type doit être convertie, ou codée, en format binaire. Cela est vrai non
seulement pour les données que l’on souhaite traiter (les textes, les images, les sons, les nombres,
etc.), mais aussi pour les séquences d’instructions « les programmes » que l’on va fournir à la
machine pour lui dire ce qu’elle doit faire avec ces données
Les bases
fondamentales
du Python
Le langage de programmation :
➢ Le seul « langage machine » que l’ordinateur puisse véritablement « comprendre » est donc très
éloigné de ce que nous utilisons nous-mêmes. C’est une longue suite de 1 et de 0 (les « bits »)
souvent traités par groupes de 8 (les « octets »), 16, 32, ou même 64. Ce « langage machine » est
évidemment presque incompréhensible pour nous.
Pour « parler » à un ordinateur, il nous faudra utiliser des systèmes de traduction automatiques,
capables de convertir en nombres binaires des suites de caractères formant des mots-clés
(anglais en général) qui seront plus significatifs pour nous.
C’est systèmes de traduction automatique sont appelés « l’interpréteur » ou bien « le
compilateur » suivant la méthode utilisée pour effectuer la traduction d’où la nécessité
d’utiliser le langage de programmation
Les bases
fondamentales
du Python
Le langage de programmation :
➢ C’est un ensemble de mots-clés (choisis arbitrairement) associé à un ensemble de règles très
précises indiquant comment assembler ces mots pour former des « phrases » que l’interpréteur
ou le compilateur puisse traduire en langage machine (binaire).
➢ Selon son niveau d’abstraction :
1. Il y’a un langage qui est « de bas niveau » (ex : assembleur) : constitué
d’instructions très élémentaires, très « proches de la machine ».
[Link] langage « de haut niveau » (ex : Pascal, Perl, Smalltalk, Scheme, Lisp...) : comporte
des instructions plus abstraites, plus « puissantes » (et donc plus « magiques »). Chacune de ces
instructions pourra être traduite par l’interpréteur ou le compilateur en un grand nombre
d’instructions machine élémentaires.
Les bases
Python : fondamentales
du Python
➢ C’est un langage de haut niveau, dont la traduction en code binaire est complexe et prend donc
toujours un certain temps. => cela pourrait paraître un inconvénient.
➢ En fait, les avantages que présentent les langages de haut niveau sont énormes :
1. Il est beaucoup plus facile d’écrire un programme dans un langage de haut niveau ;
2. L’ écriture du programme prend donc beaucoup moins de temps ;
3. La probabilité d’y faire des fautes est nettement plus faible ;
4. La maintenance (c’est-à-dire l’apport de modifications ultérieures)
5. La recherche des erreurs (les « bogues ») sont grandement facilitées.
6. La portable, c’est-à-dire que l’on pourra le faire fonctionner sans guère de
modifications sur des machines ou des systèmes d’exploitation différents. Contrairement au
langage du bas niveau
Les bases
fondamentales
Python :
du Python
➢ Python est un langage de programmation assez utilisé, puisqu’il est à peu près possible de tout
faire avec : des sites et applications web, des applications mobiles, des jeux vidéo, des scripts
personnels, des applications de bureau, et d’analyse de données !
Par exemple :
✓ Instagram est codé en Python ;
✓ c’est l’un des langages principaux utilisés par les développeurs de Google ;
✓ Netflix utilise Python pour l’élaboration de ses algorithmes de recommandation ;
✓ l’application bureau de Dropbox est développée en Python ;
✓ Reddit est codé en Python.
Les bases
fondamentales
Python : du Python
➢ Il présente la particularité de pouvoir être utilisé de plusieurs manières différentes, soit :
- En mode interactif « via l’interpréteur de commande » : de manière à dialoguer avec lui
directement depuis le clavier sans enregistrer les instructions du
programme.
=> Cela vous permettra de découvrir très vite un grand nombre de fonctionnalités du langage.
- L'interpréteur de commandes Python permet de tester du code au fur et à mesure
qu'on l'écrit.
- L'interpréteur Python accepte des nombres il est capable d'effectuer des calculs.
- Un nombre décimal s'écrit avec un point et non une virgule.
Les bases
fondamentales
Python : du Python
➢ Les calculs impliquant des nombres décimaux donnent parfois des résultats, approximatifs c'est
pourquoi on préfèrera, dans la mesure du possible, travailler avec des nombres entiers.
- En créant vos premiers programmes (scripts d’extension .py) et les sauvegarder sur
disque.
➢ Pour lancer l’interpréteur de commande sous Anaconda vous cliquez sur le Powershell Prompt et
vous tapez la commande python ( voir TP0)
Les bases
fondamentales
Calculer avec Python : du Python
➢ Les trois caractères « supérieur à » constituent le signal d’invite, ou prompt principal, lequel vous
indique que Python est prêt à exécuter une commande.
➢ Par exemple, vous pouvez tout de suite utiliser l’interpréteur comme une simple calculatrice
de bureau en utilisant les différentes opérations arithmétiques respectivement les symboles +,
-, * et /
Les bases
fondamentales
Calculer avec Python : du Python
➢ Les trois caractères « supérieur à » constituent le signal d’invite, ou prompt principal, lequel vous
indique que Python est prêt à exécuter une commande.
➢ Par exemple, vous pouvez tout de suite utiliser l’interpréteur comme une simple calculatrice
de bureau en utilisant les différentes opérations arithmétiques respectivement les symboles +,
-, * et /
Les bases
fondamentales
Calculer avec Python : du Python
➢ Le premier opérateur utilise le symbole « // ». Il permet d'obtenir la partie entière d'une division.
➢ Les noms de variables sont des noms que vous choisissez vous-même, de préférence qu’ils soient assez
courts, mais aussi explicites, de manière à exprimer clairement ce que la variable est censée contenir.
=> Par exemple, des noms de variables tels que altitude, altit ou alt conviennent mieux que x pour
exprimer une altitude.
Les bases
fondamentales
du :Python
Donnée et variable avec Python
➢ Sous python, les noms de variables doivent en outre obéir à quelques règles simples :
1. Un nom de variable est une séquence de lettres (a → z , A → Z) et de chiffres (0 → 9), qui doit
toujours commencer par une lettre.
2. Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les espaces,
3. Les caractères spéciaux tels que $, #, @, etc. sont interdits, à l’exception du caractère _
(souligné).
4. (Les caractères majuscules et minuscules sont distingués). => Joseph, joseph, JOSEPH sont donc
des variables différentes. Soyez attentifs !
Les bases
fondamentales
du :Python
Donnée et variable avec Python
➢ En plus de ces règles, il faut encore ajouter que vous ne pouvez pas utiliser comme nom de
variables les 33 « mots réservés » ci-dessous (car ils sont utilisés par le langage lui-même) :
➢ On peut aussi effectuer des affectations parallèles à l’aide d’un seul opérateur :
Les bases
fondamentales
du Python
Priorité des opérations sous Python :
➢ Sous Python, les règles de priorité sont les mêmes que celles qui vous ont été enseignées au
niveau des autres langages. Vous pouvez les mémoriser aisément à l’aide de l’acronyme PEMDAS :
1. P pour parenthèses : Ce sont elles qui ont la plus haute priorité. Elles vous permettent donc de «
forcer » l’évaluation d’une expression dans l’ordre que vous voulez.
2. E pour exposants : Les exposants sont évalués ensuite, avant les autres opérations.
3. M et D pour multiplication et division : qui ont la même priorité. Elles sont évaluées
avant l’addition A et la soustraction S, lesquelles sont donc effectuées en dernier lieu. Ainsi 2*3-
1 = 5 (plutôt que 4), et 2/3-1 = -0.3333... (plutôt que 1.0).
Si deux opérateurs ont la même priorité, l’évaluation est effectuée de gauche à droite.
Les bases
fondamentales
du Python
Composition sous Python :
➢ L’une des grandes forces d’un langage de programmation de haut niveau est qu’il permet de
➢ construire des instructions complexes par assemblage ou composition de fragments divers. Ainsi
par exemple, si vous savez comment additionner deux nombres et comment afficher une valeur,
vous pouvez combiner ces deux instructions en une seule :
➢ Cela n’a l’air de rien, mais cette fonctionnalité qui paraît si évidente va vous permettre de
programmer des algorithmes complexes de façon claire et concise. Exemple :
Les bases
fondamentales
du Python
Contrôle du flux d’exécution :
➢ Jusqu'à présent, nous avons testé des instructions d'une façon linéaire : l'interpréteur exécutait
au fur et à mesure le code que vous saisissiez dans la console. Mais dans ce cas là nos
programmes seraient bien pauvres
➢ Le « chemin Série d’actions dans un certain ordre » suivi par Python à travers un programme
est appelé un flux d’exécution, et les constructions qui le modifient sont appelées des
instructions de contrôle de flux.
➢ Les structures de contrôle sont les groupes d’instructions qui déterminent l’ordre dans lequel les
➢ actions sont effectuées.
➢ En programmation moderne, il en existe seulement trois : la séquence, la sélection ou exécution
conditionnelle, et la répétition
Les bases
fondamentales
du Python
Contrôle du flux d’exécution :
1) Séquence d’instructions :
➢ Ce sont les instructions d’un programme s’exécutent les unes après les autres, dans l’ordre où
elles ont été écrites à l’intérieur du script.
➢ Mais L’expérience montre qu’un grand nombre d’erreurs sémantiques dans les programmes
➢ Python exécute normalement les instructions de la première jusqu’à la dernière, sauf lorsqu’il
rencontre une instruction conditionnelle comme l’instruction if ou une telle répétition par
boucle. Une telle instruction « if » va permettre au programme de tester une certaine condition
et de suivre différents chemins suivant les circonstances.
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ La condition évaluée après l’instruction if peut contenir les opérateurs de comparaison suivants:
x == y # x est égal à y
x != y # x est différent de y
x>y # x est plus grand que y
x<y # x est plus petit que y
x >= y # x est plus grand que, ou égal à y
x <= y # x est plus petit que, ou égal à y
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle « Prédicats et Booléens »:
➢ Les variables de ce type ne peuvent prendre comme valeur que vrai ou faux et peuvent être
pratiques, justement, pour stocker des prédicats, de la façon que nous avons vue ou d'une façon
plus détournée.
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle « Les mots-clés and, or et not »:
➢ Il arrive souvent que nos conditions doivent tester plusieurs prédicats, par exemple quand l'on
Cela marche mais c'est
cherche à vérifier si une variable quelconque, de type entier, se tr ouve dans
assezun intervalle
lourd, précis
pour qu'un
message soit affiché à
(c'est-à-dire comprise entre deux nombres). Avec nos méthodes a ctuelles,chaquele plusfois,
simple
il fautserait
d'écrire : fermer chacune
des deux conditions à
l'aide d'un else
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle « Les mots-clés and, or et not »:
➢ Il existe cependant le mot clé and qui permet de tester à la fois si a est supérieur ou égal à 2 et
inférieur ou égal à 8. On peut donc réduire ainsi les conditions imbriquées :
➢ il existe le mot clé not qui « inverse » un prédicat. Le prédicat not a==5 équivaut donc à a!=5
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ Sous Python, les instructions composées ont toujours la même structure : « une ligne d’en-tête
terminée par un double point, suivie d’une ou de plusieurs instructions indentées sous cette
ligne d’en-tête.
Exemple :
S’il y a plusieurs instructions indentées
Ligne d’en-tête: sous la ligne d’en-tête, elles doivent l’être
première instruction du bloc exactement au même niveau (comptez un
... ... décalage de 4 caractères). Ces instructions
... ... indentées constituent ce que nous
dernière instruction du bloc appellerons désormais un bloc
d’instructions.
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ Pour les instructions imbriquées, Il est parfaitement possible d’imbriquer les unes dans les
autres plusieurs instructions composées, de manière à réaliser des structures de décision
complexes. Exemple :
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ Tout ce qui précède nous amène à faire le point sur quelques règles de syntaxe :
1. Les limites des instructions et des blocs sont définies par la mise en page
Comme dans les autres langages de programmation, il faut terminer chaque ligne d’instructions
par un caractère spécial (souvent le point-virgule).
Sous Python, c’est le caractère de fin de ligne qui joue ce rôle. On peut également terminer une
ligne d’instructions par un commentaire. Un commentaire Python commence toujours par le
caractère spécial #. Tout ce qui est inclus entre ce caractère et le saut à la ligne suivant est
complètement ignoré par l’interpréteur.
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ Tout ce qui précède nous amène à faire le point sur quelques règles de syntaxe :
1. Les limites des instructions et des blocs sont définies par la mise en page
Dans la plupart des autres langages, un bloc d’instructions doit être délimité par des symboles
spécifiques (parfois même par des instructions, telles que begin et end ou par des accolades
sous C++ ou JAVA) Avec Python, vous devez utiliser les sauts à la ligne et l’indentation, mais en
contrepartie vous n’avez pas à vous préoccuper d’autres symboles délimiteurs de blocs. En
définitive, Python vous force donc à écrire du code lisible, et à prendre de bonnes habitudes
que vous conserverez lorsque vous utiliserez d’autres langages
Les bases
fondamentales
du
Contrôle du flux d’exécution :
Python
2) Sélection ou exécution conditionnelle :
➢ Tout ce qui précède nous amène à faire le point sur quelques règles de syntaxe :
2. Instruction composée : en-tête, double point, bloc
d’instructions indenté
✓ les espaces placés à l’intérieur des instructions et des expressions sont presque toujours
ignorés (sauf s’ils font partie d’une chaîne de caractères). Il en va de même pour les
commentaires : ceux-ci commencent toujours par un caractère dièse (#) et s’étendent jusqu’à
la fin de la ligne courante.
Les bases
fondamentales
du: Python
Contrôle du flux d’exécution
3) Instructions répétitives :
➢ L’une des tâches que les machines font le mieux est la répétition sans erreur de tâches
identiques.
➢ Il existe bien des méthodes pour programmer ces tâches répétitives.
1) La réaffectation
✓ il est permis de réaffecter une nouvelle valeur à une même variable, autant de fois qu’on le
souhaite.
Les bases
fondamentales
du: Python
Contrôle du flux d’exécution
3) Instructions répétitives :
1) La réaffectation
✓ Il faut faire attention le fait que le symbole égale utilisé sous Python pour réaliser une
affectation ne doit pas être confondu avec un symbole d’égalité tel qu’il est compris en
mathématique.
✓ Premièrement, l’égalité est commutative, alors que l’affectation ne l’est pas
✓ Deuxièmement, l’égalité est permanente, alors que l’affectation peut être remplacée
Les bases
fondamentales
du: Python
Contrôle du flux d’exécution
# (n’oubliez pas le double point !)
# (n’oubliez pas l’indentation !)
3) Instructions répétitives :
2) Répétitions en boucle – L’instruction
while
✓ on appelle boucle est un système d’instructions qui permet de répéter un certain nombre de fois
(voire indéfiniment) toute une série d’opérations.
✓ Python propose deux instructions particulières pour construire des boucles : l’instruction for … in
… , très puissante, et l’instruction while que nous allons découvrir tout de suite.
Les bases
fondamentales
du: Python
Contrôle du flux d’exécution
3) Instructions répétitives :
2) Répétitions en boucle – L’instruction while
✓ Avec l’instruction while, Python commence par évaluer la validité de la condition fournie entre
parenthèses
Si la condition se révèle fausse, alors tout le bloc qui suit est ignoré et l’exécution du programme
se termine.
Si la condition est vraie, alors Python exécute tout le bloc d’instructions constituant le corps de la
boucle
Les bases
fondamentales
Contrôle du flux d’exécution :
du
3) Instructions répétitives :
Python
2) Répétitions en boucle – L’instruction while
N.B : - La variable évaluée dans la condition doit exister au préalable (il faut qu’on lui ait déjà
affecté au moins une valeur).
- Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté.
- Si la condition reste toujours vraie, alors le corps de la boucle est répété indéfiniment (tout
au moins tant que Python lui-même continue à fonctionner).
- Il faut donc veiller à ce que le corps de la boucle contienne au moins une instruction
qui change la valeur d’une variable intervenant dans la condition évaluée par while, de
manière à ce que cette condition puisse devenir fausse et la boucle se terminer.
Les bases
fondamentales
Contrôle du flux d’exécution :
du
3) Instructions répétitives :
Python
2) Répétitions en boucle – L’instruction while « mot clé break »
Le mot-clé break permet tout simplement d'interrompre une boucle «permet d'arrêter une boucle
quelle que soit la condition de la boucle» . La boucle while a pour condition 1, c'est-à-dire une
condition qui sera toujours vraie. En pratique, on demande à l'utilisateur de taper une lettre (un 'Q'
pour quitter). Tant que l'utilisateur ne saisit pas cette lettre, le programme lui redemande de taper
une lettre. Quand il tape 'Q', le programme affiche Fin de la boucle et la boucle s'arrête grâce au
mot-clé break.
Les bases
fondamentales
Contrôle du flux d’exécution :
du
3) Instructions répétitives :
Python
2) Répétitions en boucle – L’instruction while « mot clé continue »
Le mot-clé continue permet de… continuer une boucle, en repartant directement à la ligne du while
ou for.
Les bases
fondamentales du
Contrôle du flux d’exécution :
Python
3) Instructions répétitives :
3) Répétitions en boucle – L’instruction for
✓ L'instruction for travaille sur des séquences. Elle est en fait spécialisée dans le parcours d'une
séquence de plusieurs données. L'instruction for se construit ainsi :
for element in sequence:
✓ element est une variable créée par le for, ce n'est pas à vous de l'instancier. Elle prend
successivement chacune des valeurs figurant dans la séquence parcourue. in peut être utilisée
ailleurs que dans une boucle for
Les bases
fondamentales du
Contrôle du flux d’exécution :
Python
3) Instructions répétitives :
3) Répétitions en boucle – L’instruction for
Les bases
fondamentales
du Python
Comment conserver nos programmes « Les scripts » :
➢ Jusqu’à présent, vous avez toujours utilisé Python en mode interactif (c’est-à-dire que vous avez à
chaque fois entré les commandes directement dans l’interpréteur, sans les sauvegarder au
préalable dans un fichier).
Cela vous a permis d’apprendre très rapidement les bases du langage, par usage directe.
Mais toutes les séquences d’instructions que vous avez écrites disparaissent immédiatement
dès que vous fermez l’interpréteur.
Il est donc temps que vous appreniez sauvegarder vos programmes dans des fichiers
« Scripts », sur disque dur ou clef USB, de manière à pouvoir les retravailler par
étapes successives, les transférer sur d’autres machines, etc.
Les bases
fondamentales
du Python
Comment conserver nos programmes « Les scripts » :
➢ Vous devez rédiger vos séquences d’instructions dans un éditeur de texte quelconque (par
exemple Kate, Gedit, Geany... sous Linux, ou Wordpad, ou l’interface de développement IDLE qui
fait partie de la distribution de Python pour Windows), que vous pourrez ensuite sauvegarder,
modifier, copier, etc. comme n’importe quel autre texte traité par ordinateur.
Les bases
fondamentales
du Python
Comment conserver nos programmes « Les scripts » :
➢ Par la suite, lorsque vous voudrez tester l’exécution de votre programme, il vous suffira de
lancer l’interpréteur Python en lui fournissant (comme argument) le nom du fichier qui
contient le script. Par exemple, si vous avez placé un script dans un fichier nommé
« test_cours», il suffira d’entrer la commande suivante dans une fenêtre de terminal pour que
ce script s’exécute :
Les bases
fondamentales
Data types :
du Python
➢ Le type integer : python permet de traiter des entiers de taille illimitée
➢ Le type float : pour traiter le « nombre réel », ou « nombre à virgule flottante », Ce type
autorise les calculs sur de très grands ou très petits nombres avec un degré de précision
constant.
➢ Le type string : peut se définir comme une suite quelconque de caractères. En python, on peut
délimiter une telle suite de caractères, soit par des apostrophes, soit par des guillemets.
Exemples :
Les bases
fondamentales
Data types :
du Python
➢ Le caractère spécial « \ » (antislash) permet quelques subtilités complémentaires :
➢ Il permet d’écrire sur plusieurs lignes une commande qui serait trop longue pour tenir sur une
seule (cela vaut pour n’importe quel type de commande).
➢ À l’intérieur d’une chaîne de caractères, l’antislash permet d’insérer un certain nombre de
codes spéciaux (sauts à la ligne, apostrophes, guillemets, etc.). Exemples :
Les bases
fondamentales
Data types :
du Python
➢ Le caractère « """ » ( Triples quotes ) Pour insérer plus aisément des caractères spéciaux ou «
exotiques » dans une chaîne, sans faire usage de l’antislash, ou pour faire accepter l’antislash
lui-même dans la chaîne, on peut encore délimiter la chaîne à l’aide de triples guillemets ou de
triples apostrophes :
Les bases
fondamentales
Data types :
du Python
❑ Accès aux caractères individuels d’une chaîne
➢ Python considère qu’une chaîne de caractères est un objet de la catégorie des séquences, qui
sont des collections ordonnées d’éléments. Cela signifie simplement que les caractères d’une
chaîne sont toujours disposés dans un certain ordre. Par conséquent, chaque caractère de la
chaîne peut être désigné par sa place dans la séquence, à l’aide d’un index.
➢ Pour accéder à un caractère bien déterminé, on utilise le nom de la variable qui contient la
chaîne et on lui accole, entre deux crochets, l’index numérique qui correspond à la position du
caractère dans la chaîne.
Les bases
fondamentales
Data types :
dusur lesPython
❑ Opérations élémentaires chaînes
➢ Assemblement de plusieurs petites chaînes pour en construire de plus grandes. Cette opération
s’appelle concaténation et on la réalise sous Python à l’aide de l’opérateur +
(cet opérateur réalise donc l’opération d’addition lorsqu’on l’applique à des nombres, et
l’opération de concaténation lorsqu’on l’applique à des chaînes de caractères).
Les bases
fondamentales
Data types :
dusur lesPython
❑ Opérations élémentaires chaînes
➢ Détermination de la longueur (c’est-à-dire le nombre de caractères) d’une chaîne, en faisant
appel à la fonction intégrée len() :
➢ Pour Convertir en nombre entier une chaîne de caractères qui représente un nombre.
Les bases
fondamentales
Data types :
❑ Les listes du Python
➢ Les chaînes que nous avons abordées précédemment constituaient un premier exemple de
données composites. On appelle ainsi les structures de données qui sont utilisées pour
regrouper de manière structurée des ensembles de valeurs. On va étudier prochainement les
différents types de données composites, parmi lesquelles les listes, les tuples et les
dictionnaires. Et on commence maintenant par le premier type
➢ Sous Python, on peut définir une liste comme une collection d’éléments séparés par des
virgules, l’ensemble étant enfermé dans des crochets. Exemple :
Les bases
fondamentales
Data types :
❑ Les listes du Python
➢ Les listes sont des séquences, c’est-à-dire des collections ordonnées d’objets. Les divers
éléments qui constituent une liste sont en effet toujours disposés dans le même ordre, et l’on
peut donc accéder à chacun d’entre eux individuellement si l’on connaît son index dans la liste.
Les bases
fondamentales
Data types :
❑ Les listes du Python
➢ On peut même remplacer certains éléments d’une liste par d’autres, comme ci-dessous :
➢ La fonction intégrée len(), que nous avons déjà rencontrée à propos des chaînes, s’applique
aussi aux listes.
Les bases
fondamentales
Data types :
❑ Les listes du Python
➢ Une autre fonction intégrée del() qui permet de supprimer d’une liste un élément quelconque
(à partir de son index).
➢ Il est également tout à fait possible d’ajouter un élément à une liste, mais pour ce faire, il faut
considérer que la liste est un objet, dont on va utiliser la méthode append() pour ajouter l’
élément.
Les bases
fondamentales
Data types :
❑ Les listes du Python
➢ Donc on peut comprendre que la méthode append() est une sorte de fonction qui est en quelque manière
intégrée ou « encapsulées » dans les objets du type « liste ». L’argument que l’on utilise avec cette
fonction est bien entendu l’élément que l’on veut ajouter à la fin de la liste.
➢ On peut même parcourir les listes via des boucles :
Les bases
fondamentales
Les fonctions Prédéfinies :
du Python
➢ Une fonction exécute un certain nombre d'instructions déjà enregistrées comme vous
enregistrez un groupe d'instructions => pour faire une action précise et que vous lui donnez un
nom. Vous n'avez plus ensuite qu'à appeler cette fonction par son nom autant de fois que
nécessaire.
➢ La plupart des fonctions ont besoin d'au moins un paramètre pour travailler sur une donnée ;
➢ ces paramètres sont des informations que vous passez à la fonction afin qu'elle les utilise.
➢ Les fonctions s'utilisent en respectant la syntaxe suivante :
def nom_de_la_fonction (parametre_1,parametre_2,…,parametre_n)
=> Si la fonction n'attend aucun paramètre, vous devrez quand même mettre les parenthèses, sans
rien entre elles ().
Les bases
fondamentales
Les fonctions Prédéfinies :
❑ type()
du Python
➢ Dans les slides précédents, on a vu les types de données simples, du moins une partie d'entre eux.
Une des grandes puissances de Python est qu'il comprend automatiquement de quel type est une
variable et cela lors de son affectation.
➢ Mais il est pratique de pouvoir savoir de quel type est une variable.
type(nom_de_la_variable)
=> La fonction renvoie le type de la variable passée en paramètre
Les bases
fondamentales
Les fonctions Prédéfinies : du Python
❑ Print()
➢ La fonction print permet d'afficher la valeur d'une ou plusieurs variables.
print(nom_de_la_variable)
• Le premier appel à print se contente
d'afficher la valeur de la variable a, « 7 ».
• Le deuxième appel, on passe
quatre
paramètres à print, deux chaînes de
caractères et les variables a et b. Quand
Python interprète cet appel de fonction,
il va afficher les paramètres dans l'ordre
de passage, en les séparant par un
espace
Les bases
fondamentales
Les fonctions Prédéfinies : du Python
❑ Print()
➢ Elle permet d’afficher n’importe quel nombre de valeurs fournies en arguments ( ). Par défaut, ces
valeurs seront séparées les unes des autres par un espace, et le tout se terminera par un saut à la
ligne.
Vous pouvez remplacer le séparateur par défaut (l’espace) par un autre caractère quelconque (ou
même par aucun caractère), grâce à l’argument sep.
=> Vous pouvez remplacer le saut à la ligne par l’argument end :
Les bases
Les fonctions Prédéfinies :
fondamentales
❑ input() du Python
➢ La plupart des scripts élaborés nécessitent à un moment ou l’autre une intervention d’utilisateur
➢ (entrée d’un paramètre, clic de souris sur un bouton, etc.). Dans un script en mode texte, la
méthode la plus simple consiste à employer la fonction intégrée input(). Cette fonction
provoque une interruption dans le programme courant. L’utilisateur est invité à entrer des
caractères au clavier et à terminer avec <Enter>. Lorsque cette touche est enfoncée, l’exécution
du programme se poursuit, et la fonction fournit en retour une chaîne de caractères
correspondant à ce que l’utilisateur a saisi. Cette chaîne peut alors être assignée à une variable
quelconque, convertie…
Les bases
Les fonctions Prédéfinies :
fondamentales
❑ input() du Python
➢ Par exemple :
➢ Lorsque nous appellerons cette procédure, nous devrons bien évidemment pouvoir lui indiquer
quelle table nous souhaitons afficher. Cette information que nous voulons transmettre à la
procédure au moment même où nous l’appelons s’appelle un argument.
L’argument que nous avons utilisé dans cet exemple pour appeler la procédure table() était à
chaque fois une constante (la valeur 7, puis la valeur 23). Cela n’est pas obligatoire
Les bases
Les procédures originales :
fondamentales
du
❑ Utilisation d’une variable Python
comme argument
➢ L’argument que nous utilisons dans l’appel d’une procédure peut être une variable lui aussi,
comme dans l’exemple ci-dessous :
# ici l’argument de cette procédure table() est le contenu de la
variable a. À l’intérieur de la fonction, cet argument est
affecté au paramètre base, qui est une autre variable.
Les bases
Les procédures originales :
fondamentales
du
❑ Procédure avec plusieurs Python
paramètres
➢ Cette nouvelle procédure utilise donc trois paramètres : la base de la table comme dans
l’exemple précédent, l’indice du premier terme à afficher, l’indice du dernier terme à afficher.
Les bases
fondamentales
Les procédures originales :
❑ Variables locales : du Python
➢ Lorsque nous définissons des variables à l’intérieur du corps d’une procédure, ces variables ne
sont accessibles qu’à la procédure elle-même. On dit que ces variables sont des variables locales
au procédure. C’est par exemple le cas des variables base, debut, fin et n.
➢ Chaque fois que la procédure tableMulti() est appelée, Python réserve pour elle (dans la
mémoire de l’ordinateur) un nouvel espace de noms. Les contenus des variables base, debut, fin
et n sont stockés dans cet espace de noms qui est inaccessible depuis l’extérieur de la procédure.
La machine nous signale clairement que le symbole base lui est inconnu, alors qu’il était correct-
ement imprimé par la procédure tableMulti() . L’espace de noms qui contient le symbole base est
strictement réservé au fonctionnement interne de tableMulti(), et il est automatiquement détruit
dès que la procédure a terminé son travail.
Les bases
Les procédures originales :
fondamentales
❑ Variables globales : du Python
➢ Les variables définies à l’extérieur d’une procédure sont des variables globales. Leur contenu est
« visible » de l’intérieur d’une procédure, mais la procédure ne peut pas le modifier.
Les bases
du
fondamentales
Les fonctions :
Python
➢ La syntaxe Python pour la définition d’une fonction est la suivante :
Même si cette façon de procéder est déjà nettement meilleure que la précédente, nous sommes
toujours confrontés à plusieurs problèmes gênants :
1. La lisibilité du programme va se détériorer très vite lorsque le nombre de questions
deviendra important. Mais, on la probabilité d’insérer une erreur de syntaxe dans la définition
de cette longue liste. De telles erreurs seront bien difficiles à débusquer.
2. L’ajout de nouvelles questions, ou la modification de certaines d’entre elles, imposeront à chaque
fois de rouvrir le code source du programme. Il deviendra malaisé de retravailler ce même
code source, puisqu’il comportera de nombreuses lignes de données encombrantes.
3. L’échange de données avec d’autres programmes (peut-être écrits dans d’autres langages) est tout
simplement impossible, puisque ces données font partie du programme lui-même.
=> Cette dernière remarque nous suggère la direction à prendre : il est temps que nous apprenions à
séparer les données et les programmes qui les traitent dans des fichiers différents.
Les bases
fondamentales
La manipulation des fichiers :
❑ Utilité des fichiers: du Python
La méthode pour travailler avec les fichiers doit être très organisée. Pour y accéder grâce à son nom
(lequel peut inclure aussi un nom de répertoire). Vous pouvez considérer le contenu d’un fichier
comme une suite de caractères, ce qui signifie que vous pouvez traiter ce contenu, à l’aide des
fonctions servant à traiter les chaînes de caractères
1. La première commande importe la fonction chdir() du module os. Le module os contient
toute une série de fonctions permettant de dialoguer avec le système d’exploitation (os =
operating system), quel que soit celui-ci.
2. La seconde commande provoque le changement de répertoire (chdir =change directory)
Les bases
fondamentales
La manipulation des fichiers :
❑ Rêpertoire courant desdu
fichiers:Python
Ou bien
1. La première ligne de cet exemple importe l’intégralité du module os, lequel contient
de nombreuses fonctions intéressantes pour l’accès au système d’exploitation.
2. La seconde ligne utilise la fonction getcwd() du module os. Comme vous pouvez le
constater, la fonction getcwd() renvoie le nom du répertoire courant (getcwd = get
current working directory)
Les bases
fondamentales
La manipulation des fichiers :
❑ Ecriture dans un fichierdu
: Python
✓ Sous Python, l’accès aux fichiers est assuré par l’intermédiaire d’un objet-interface particulier,
que l’on appelle objet-fichier. On crée cet objet à l’aide de la fonction intégrée open().
Celle-ci renvoie un objet doté de méthodes spécifiques, qui vous permettront de lire et
écrire dans le fichier.
Les bases
fondamentales
La manipulation des fichiers :
❑ Ecriture dans un fichierdu Python
Nous aurions pu utiliser aussi le mode 'w' (pour write),
mais lorsqu’on utilise ce mode, Python crée toujours un
: nouveau fichier (vide), et l’écriture des données
commence à partir du début de ce nouveau fichier. S’il
✓ Ligne 1 : crée l’objet-fichier obFichier, lequel fait existe déjà un fichier de même nom, celui-ci sera effacé
référence à un fichier véritable (selon son
path) dont le nom sera Monfichier. le nom
de l’objet- fichier qui y donne accès ! À la vous
pouvez vérifier qu’il s’est bien créé sur
votre système (dans le répertoire
courant).
✓ La fonction open() attend 2 arguments, en chaînes
de caractères. Le premier argument est le nom
du fichier à ouvrir, et le second est le
mode
d’ouverture. 'a'
✓ Ce mode indique qu’il faut ouvrir ce fichier en
mode « ajout » (append), ce qui signifie que
les données à enregistrer doivent être ajoutées à la
fin du fichier, à la suite de celles qui s’y
trouvent éventuellement déjà.
Les bases
fondamentales
La manipulation des fichiers :
❑ Lecture d’un fichier : du Python
✓ Maintenant on veut rouvrir le fichier, mais cette fois en lecture:
✓ Nous avons choisi de créer un objet-fichier ofi, faisant référence au fichier réel Monfichier, lequel est
ouvert en lecture (argument ’r’).
✓ Les deux chaînes de caractères que nous avions entrées dans le fichier sont à présent accolées en une
seule.
✓ La méthode read() peut également être utilisée avec un argument. Celui-ci indiquera combien de
caractères doivent être lus, à partir de la position déjà atteinte dans le fichier :
Si la fin du fichier est déjà atteinte,
read() renvoie une chaîne vide :
Les bases
fondamentales
La manipulation des fichiers :
❑ Exemple 1 : du Python
Les bases
fondamentales
La manipulation des fichiers :
❑ Un fichier texte : du Python
✓ Un fichier texte est un fichier qui contient
des caractères « imprimables» et
des espaces organisés en lignes
successives, ces lignes étant séparées
les unes des autres par un caractère spécial
non imprimable appelé marqueur
de fin de ligne
pas trop gros => À la fin du fichier, readline() renvoie une chaîne vide,
✓ Si vous voulez traiter de gros fichiers, vous tandis que readlines() renvoie une liste vide.
✓ Le message d’erreur proprement dit comporte deux parties séparées par un double point : d’abord
le type d’erreur, et ensuite une information spécifique de cette erreur.
Les bases
fondamentales
Gestion des exceptions :
du
✓
Python
❑ Les instructions try – except – else:
Dans les langages de haut niveau comme Python, il est également possible d’associer un mécanisme de surveillance à
tout un ensemble d’instructions, et donc de simplifier le traitement des erreurs qui peuvent se produire dans
n’importe laquelle de ces instructions.
✓ Sous Python, l’exception utilise l’ensemble d’instructions try - except – else,
✓ L’ instruction try est exécuté par Python sous réserve de telle manière elle vérifie le bloc d’instructions qui suit
directement
✓ Si une erreur survient pendant l’exécution de l’une de ces instructions, alors Python annule cette instruction fautive et
exécute à sa place le code inclus dans le bloc qui suit l’instruction except. Si aucune erreur ne s’est produite
dans les instructions qui suivent try, alors c’est le bloc qui suit l’instruction else qui est exécuté
Les bases
fondamentales
Gestion des exceptions :
du
❑ Exemple 3 : Python
Partie II : La structure de donnée sous Python
SelonGraceHopper,inventeurducompilateur:
«Pourmoi,laprogrammationestplusqu’unartappliquéimportant.C’estaussiune
ambitieusequêtemenéedanslestréfondsdelaconnaissance.»
La structure de donnée sous
Python
Les chaînes de caractères :
✓ Les chaînes de caractères font partie d’une catégorie d’objets Python que l’on appelle des séquences, dont
font partie aussi les listes et les tuples. Les chaines de caractères sont des séquences ordonnées
non modifiables. On peut effectuer sur les séquences tout un ensemble d’opérations similaires. exemple :
✓ Les chaînes peuvent être concaténées avec l’opérateur + et répétées avec l’opérateur * :
La structure de donnée sous
Python
Les chaînes de caractères :
❑ Les chaines sont des objets :
✓ Sous Python, les chaînes de caractères sont des objets. On peut donc effectuer de nombreux traitements sur les chaînes
de caractères en utilisant des méthodes appropriées :
❖ split() : convertit une chaîne en une liste de sous-chaînes. On peut choisir le caractère séparateur en
le fournissant comme argument, sinon c’est un espace par défaut :
La structure de donnée sous
Python
Les chaînes de caractères :
❑ Les chaines sont des objets :
❖ join(liste) : rassemble une liste de chaînes en une seule (cette méthode effectue donc l’action inverse
de la précédente).
❖ find(sch) : cherche la position d’une sous-chaîne sch « par exemple » dans la chaîne :
❖ Pour accéder aux éléments d’une liste, on utilise les mêmes méthodes pour accéder aux
caractères d’une chaîne (index, découpage en tranches) :
❖ Contrairement aux chaînes de caractères, les listes sont des séquences modifiables. Cela nous
permettra de construire plus tard des listes de grande taille, morceau par morceau, d’une manière
dynamique
La structure de donnée sous
Python
Les listes :
❑ Les listes sont des objets :
❖ Sous Python, les listes sont des objets à part entière, et vous pouvez donc leur appliquer un certain
❖ nombre de méthodes particulièrement efficaces :
❖ On peut imbriquer len() dans la fonction range() pour parcourir une liste de type :
La structure de donnée sous
Python
Les listes :
❑ Une conséquence importante du typage dynamique :
La structure de donnée sous
Python
Les listes :
❑ Opérations sur les listes :
La structure de donnée sous
Python
Les listes :
❑ Copie d’une liste :
❖ À la suite de phrase = fable, il n’existe toujours qu’une seule liste dans la mémoire de l’ordinateur. Ce
que vous avez créé est seulement une nouvelle référence vers cette liste. On ne crée pas une véritable
copie, car si la variable phrase contenait une véritable copie de la liste fable, cette copie serait
indépendante de l’original et ne devrait donc pas pouvoir être modifiée par cette instruction fable[4] =
‘casse’. => On dit que les modifications de l’une sont répercutées dans l’autre, et vice-versa
❖ les noms fable et phrase désignent tous deux un seul et même objet en mémoire. On dit que le
nom phrase est un alias du nom fable.
La structure de donnée sous
Python
Les tuples :
❑ Création d’un tuple :
❖ Python propose un type de données appelé tuple, qui est assez semblable à une liste mais qui, comme
les chaînes, n’est pas modifiable. Du point de vue de la syntaxe, un tuple est une collection d’éléments
séparés par des virgules :
❖ Les opérateurs de concaténation et de multiplication fonctionnent aussi. Mais puisque les tuples ne sont
pas modifiables, vous ne pouvez pas utiliser ni l’intruction del ni la méthode remove()
❖ Les listes et les tuples peuvent eux contenir des dictionnaires, des fonctions, des classes ou des instances
comme étant des éléments
La structure de donnée sous
Python
Les dictionnaires :
❖ Nous avons vu dans les anciens slides (chaînes, listes et tuples) sont tous des séquences, c’est-
à-dire des suites ordonnées d’éléments.
Dans une séquence, il est facile d’accéder à un élément quelconque à l’aide d’un index (un
nombre entier), mais à la condition expresse de connaître son emplacement.
❖ Les dictionnaires : - sont des types composites, et non pas des séquences
- ressemblent aux listes dans une
certaine mesure (ils sont aussi modifiables)
- Ses éléments ne seront pas disposés dans un ordre immuable.
❖ Mais, nous pourrons accéder à n’importe lequel d’entre les à l’aide d’un index spécifique que
l’on appellera une clé, qui pourra être alphabétique, numérique, ou même d’un type composite
sous certaines conditions.
La structure de donnée sous
Python
Les dictionnaires :
❖ Comme dans une liste, les éléments mémorisés dans un dictionnaire peuvent être de n’importe
quel type. Ce peuvent être des valeurs numériques, des chaînes, des listes, des tuples, des
dictionnaires, et même aussi des fonctions, des classes ou des instances
❖ Les clés ne peuvent pas être toujours des valeurs de type string. En fait nous pouvons utiliser des clés
de n’importe quel type de données non modifiables : des entiers, des réels, des chaînes de caractères,
et même des tuples.
La structure de donnée sous
Python
Les dictionnaires :
❑ Parcours d’un dictionnaire :
❖ On peut facilement ajouter une paire « clé : valeur » facilement dans un dictionnaire tandis que les listes
ça ne marche pas
La structure de donnée sous
Python
Les dictionnaires :
❑ Construction d’un histogramme à l’aide d’un dictionnaire :
❖ Les dictionnaires constituent un outil très élégant pour construire des histogrammes : Exemple :
✓ On veut établir l’histogramme qui représente la fréquence d’utilisation de chacune des lettres de
l’alphabet dans un texte donné « un ver vert va vers un verre vert » => comment ?
✓ Pour ordonner la fréquence de chaque caractère on peut utiliser la méthode sort() mais cette méthode
est utilisée juste pour les listes => comment peut-on faire ?? On peut convertir un dictionnaire en une
liste des tuples
La structure de donnée sous
Python
Les dictionnaires :
❑ Contrôle du flux d’exécution à l’aide d’un dictionnaire :
❖ On peut utiliser un control de flux pour tester les fonctions à faire selon chaque type de matériel :
✓ Les langages de programmation proposent souvent des instructions spécifiques pour traiter ce genre de
programme lourd, telles les instructions switch ou case du C/C++ ou Java. Python n’en propose aucune, mais on
peut utiliser les dictionnaires pour traiter ce genre de programme
Partie III : La programmation orienté objet
sous Python
SelonGraceHopper,inventeurducompilateur:
«Pourmoi,laprogrammationestplusqu’unartappliquéimportant.C’estaussiune
ambitieusequêtemenéedanslestréfondsdelaconnaissance.»
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Les objets :
❖ Un objet est une structure de données, comme les variables, les fonctions, les listes, les tuples
et les dictionnaires qui peuvent contenir eux-mêmes d'autres variables et fonctions
=> En Python, tout est objet
❖ La programmation orientée objet (POO) permet de créer des entités (objets) que l'on peut
manipuler
=> Un objet est une entité que l’on construit par instanciation à partir d’une classe
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Les classes :
❖ Une classe est un modèle suivant lequel on va créer des objets. Une classe regroupe des méthodes et des
attributs qui définissent un objet.
<< Classe : Voiture >>
- Tableau de bord
- Couleur
- Vitesse Les
- Moteur Attributs
- ……………etc
Rouler()
Les
Arrêter() méthodes
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Les classes : « Exemple »
❖ On va créer un nouveau type composite : le type Point. C’est pour cette raison, on commence par la
création de classe
❖ Par convention en Python, le nom identifiant une classe débute par une majuscule.
❖ Ceci crée un objet de type Point. En POO, on dit que l’on crée une instance de la classe Point.
Il faut bien noter que pour créer une instance, on utilise le nom de la classe suivi de parenthèses.
la définition d’une classe ne nécessite pas de parenthèses (contrairement à la définition des fonctions), sauf
si nous souhaitons que la classe en cours de définition dérive d’une autre classe préexistante.
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Création d’un objet :
❖ On peut aussi créer un nouvel objet et on met sa référence dans la variable p via cette affectation :
❖ Le message renvoyé par Python indique que p contient une référence à une instance de la classe Point,
cette instance est définie elle-même au niveau principal du programme. Elle est située dans un
emplacement bien déterminé de la mémoire vive, dont l’adresse apparaît ici en notation hexadécimale «
0x000001FF3E9A77F0 ».
❖ On peut noter que les chaînes de documentation de divers objets Python sont associées à l’attribut
prédéfini doc
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Création d’un objet :
❖ La variable a va contenir une référence à un objet. Tandis que b fait référence à un autre objet
retour,
création de l’objet.
locales
noms de l’instance.
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ La notion d’encapsulation :
❖ Le concept d'encapsulation est un concept très utile de la POO.
Il permet en particulier d’éviter une modification par erreur des données d’un objet. Donc, il n’est pas
possible d’agir directement sur les données d’un objet ; il est nécessaire de passer par ses méthodes qui
jouent le rôle d’interface obligatoire.
✓ Définition d’attributs privés :
❖ On réalise la protection des attributs de notre classe grâce à l’utilisation d’attributs privées. Pour avoir
des attributs privés, leur nom doit débuter par
❑ Surcharge de méthode :
❖ Comme nous l'avons vu précédemment : si une classe hérite d'une autre classe, elle hérite les méthodes
de son parent.
≠
L’ Orienté Objet sous Python
Les objets / Les classes :
❑ Polymorphisme :
❖ Les 2 classes possèdent donc chacune une méthode de même nom mais ces méthodes n‘ effectuent pas
les mêmes tâches.
Polymorphisme
Partie III : Gestion de Base de Données sous
Python
SelonGraceHopper,inventeurducompilateur:
«Pourmoi,laprogrammationestplusqu’unartappliquéimportant.C’estaussiune
ambitieusequêtemenéedanslestréfondsdelaconnaissance.»
Gestion de BD sous
La Base dePython
Données :
❖ Une base de données est un conteneur dans lequel il est possible de stocker des données de façon
structurée => Cette structure permet au programme informatique connectée à celle-ci de faire des
recherches complexes.
❖ Un langage standardisé -SQL- est dédié à cette structure et permet aussi bien de faire des recherches des
modifications et des suppressions.
❖ Les SGBDR - Système de gestion de base de données relationnelles – sont les plus utilisées aujourd'hui,
c'est à dire que les données sont liées les unes aux autres, par exemple on peut définir que si on
supprime une information, d'autres informations dépendantes de cette dernière soient elles-aussi
automatiquement supprimées. Afin de garantir une certaine cohérence de données .
Donc, il ne faut pas confondre une base de données qui est un conteneur et le SGBDR qui est un logiciel
de gestion de bases de données .
Gestion de BD sous
La Base dePython
Données NON relationnelles « NoSQL » :
❖ Les bases de données NoSQL ( Not Only SQL ) sont des systèmes de bases de données non relationnelles
❖ Les bases de données NoSQL sont beaucoup utilisées dans le cadre d’applications Web en temps réel.
❖ Elles peuvent également être appelées bases de données Big Data ou bases de données Cloud.
❖ Les bases de données NoSQL sont généralement plus rapides que les bases de données SQL relationnelles
où la structure n'est plus pensée en tables / SQL. NoSQL permet de travailler avec d'énormes données,
qui sont utilisées par Google , Amazon , FaceBook, etc. Dans ce cas pour augmenter les performances il
faut augmenter le nombre de serveurs.
Avant d’utiliser une base de données NoSQL spécifique, vous devez d’abord vérifier ses capacités, car
chaque base de données NoSQL possède un ensemble de fonctionnalités. Vu qu’il applique des
techniques de persistance des données adaptées à des cas d'utilisation spécifiques.
Gestion de BD sous
La Base dePython
Données NON relationnelles « NoSQL » :
❑ Cas d’utilisation du « NoSQL » :
1. La base de données clé/valeur : Répond aux besoins en haute disponibilité et de faible latence des
schéma des bases de données clé/valeur les rend parfaitement adaptées à la gestion de
sessions
2. Base de données orientée documents : Ce type de base de données est parfaitement adapté au stockage
de différents types de données pour chaque document, grâce à la flexibilité qu'il offre en
3. Base de données orientée colonnes : Ce type de base de données stocke les données dans des familles de
colonnes en tant que lignes. Plusieurs colonnes sont associées à une clé (un identifiant).
4. Base de données orientée graphes : répondent précisément aux situations où des éléments de données
réseaux sociaux, comme LinkedIn ou Facebook, représente le cas d'utilisation le plus courant des
bases de données orientées graphes. Elles ne sont pas particulièrement adaptées aux données qui
changent fréquemment, ni aux mises à jour en temps réel de grands volumes de données. En
outre, si vous prévoyez de partitionner la base de données sur un réseau, ce type de base de
MariaDB Le créateur de MySQL a crée MariaDB suite au rachat de MySQL par Oracle pour continuer
le projet en open source.
SQLite SQLite est une bibliothèque écrite en C . Il est parfait pour les petits projets. Sa
particularité est d'être intégré directement à un programme et ne répond pas à la logique
client-serveur. Il est le moteur de base de données le plus distribué au monde puisqu'il est
intégré à de nombreux logiciels grand public comme FireFox, Skype, Adobe,
Oracle Il est payant. Il est souvent utilisé pour les projets à gros budget nécessitant de réaliser des
actions complexes.
Microsoft SQL Il ne tourne que sur un OS Windows, payant n'apporte rien de plus que les logiciels
Server concurrents libre de droit. Si vous avez trop d'argent sera à la limite...
Gestion de BD sous
Les SGBDRPython
les plus connus :
❑ MySQL :
B. Création de la base de
donnée
- Il faut installer aussi les paquets suivants :
- Et la librairie MySQL :
ou
F. Trouver les données avec MySQL « pour récupérer plusieurs données de la même recherche on
utilisant la fonction fetchall() »
Gestion de BD sous
Les SGBDRPython
les plus connus :
❑ MySQL :
I. Insertion des données
Pour récupérer la première ligne correspondant à votre recherche à l'aide de la fonction fetchone
=> Il est recommandé de toujours encadrer les opérations sur des bases de données et d'anticiper des
erreurs
Gestion de BD sous
Les SGBDRPython
les plus connus :
❑ Exemple de code complet :
Gestion de BD sous
Les SGBDRPython
les plus connus :
❑ Exemple de code complet :
Elément II : Python pour la science de
données
SelonGraceHopper,inventeurducompilateur:
«Pourmoi,laprogrammationestplusqu’unartappliquéimportant.C’estaussiune
ambitieusequêtemenéedanslestréfondsdelaconnaissance.»
Python pour la Science de
Données
C’est quoi la science de données ?
La data science ou science des données consiste à résoudre des problèmes complexes en utilisant de grands
volumes de données. Elle comporte de nombreuses facettes mais sa principale caractéristique reste le
traitement de la donnée
➢ Exemple :
Lorsque vous décidez de mesurer le nombre de visiteurs sur un site web, vous allez stocker des données. Ces
données seront sous forme de lignes dans une base. Suivant ce que vous avez décidé, une ligne peut être
associée à:
✓ Un individu qui arrive sur le site,
✓ Un nombre d’individus par heure,
✓ Un temps de présence par individu sur le site.
Python pour la Science de
Données
C’est quoi la Data ?
➢ Exemple « suite »:
En fonction de la donnée que vous avez choisi de relever, vous serez amené à répondre à des questions
différentes. Alors pourquoi ne pas tout stocker ? Pour définir exhaustivement toutes les informations liées à un
visiteur, ceci est pour le cas d’un site web ce qui est faisable mais il deviendra impossible pour des systèmes
complexes.
La donnée dont vous allez disposer est donc issue d’un processus de sélection qui doit être, soit orienté de
façon à répondre à une question précise, , soit le plus neutre possible (si aucun objectif n’est prédéfini).
❖ Organisées sous forme de bases de données avec des colonnes et des lignes.
❖ Composées de valeurs chiffrées pour des données quantitatives ou de valeurs textuelles
pour des données qualitatives.
L’une des tâches du data scientist est de transformer des données non structurées en données
structurées. Cette tâche est grandement simplifiée par Python.
Python pour la Science de
Données
C’est quoi la Data ?
❑ Les types de données :
B. Les données semi-structurées :
Il s’agit de données à mi-chemin entre les données structurées et les données non structurées. On
compte dans cette catégorie :
Elles ne sont pas organisées sous forme lignes/colonnes mais ont des systèmes de balises
permettant de les transformer assez simplement en données structurées.
Python pour la Science de
Données
C’est quoi la Data ?
❑ Les types de données :
C. Les données NON-structurées :
Il s’agit de données qui n’ont pas une structure standard, elles sont facilement compréhensibles
pour l’homme mais ne peuvent pas l’être par une machine. Par exemple :
❖ les données textuelles,
❖ les images,
❖ les vidéos, les sons…
Toutes ces sources sont aujourd’hui centrales dans la compréhension des interactions du
monde qui nous entoure et le travail du data scientist sera de les transformer afin de pouvoir
les traiter de manière automatisée.
Python pour la Science de
Données
C’est quoi la Data ?
❑ Le travail de préparation des données :
❖ La récupération,
❖ La structuration,
❖ La transformation.
Python vous aidera pour ces trois étapes. Nous allons commencer par nous intéresser aux
structures qui vont nous permettre de stocker les données: les arrays de NumPy et les
DataFrame de Pandas.
D’autres
packages
Python pour la Science de
apparaissent
comme Numba
Données
Les Packages pour la Science de Données :
Le développement de Python pour la data science est avant tout basé sur des packages de références qui
ou Dask qui
permettent de permettent de travailler sur des données tout en utilisant le langage Python.
passer à un A. Les packages pour la gestion des données et le calcul numérique :
niveau
supérieur en
NumPy Pandas
✓ Pandas permet de manipuler facilement des données
termes ✓ NumPy permet d’effectuer des calculs numériques
à analyser et de manipuler des tableaux de données
d’optimisation
avec Python. Elle introduit une gestion facilitée des
avec des étiquettes de variables (colonnes) et
avec du calcul
tableaux de nombres. d'individus (lignes).
massivement
distribué et un ✓ ces tableaux sont appelés DataFrames, similaires
✓ Ses arrays permettent d’avoir une structure de aux dataframes sous R. Qu’on peut les lire et
système de
compilation JIT référence bien optimisée très facile d’utilisation. Ils écrire à partir ou vers un fichier tabulé. Et on peut
(just in time). sont à la base de la plupart des autres packages. facilement tracer des graphes à partir de ces
DataFrames grâce à matplotlib.
Python pour la Science de
Données
Les Packages pour la Science de Données :
B. Les packages pour la visualisation des données :
La visualisation des données est une étape importante dans le processus d’analyse du data scientist. Le principal
✓ Il existe de nombreux autres packages : Seaborn qui est lui-même basé sur Matplotlib mais donne accès à des
D’autres packages sont aussi disponibles, surtout pour la construction de visualisations interactives. Les deux
packages les plus connus pour cela sont Bokeh et Dash.
✓ Dans leur forme la plus classique, ils permettent de construire des graphiques en utilisant du Javascript et un
format web interactif. Ils permettent aussi de construire des applications de data visualisations interactives.
Python pour la Science de
Données
Les Packages pour la Science de Données :
C. Les packages pour le machine learning et le deep learning :
« Dans le domaine du machine learning et du deep learning, Python est réellement à la pointe. »
✓ Le machine learning s’est développé surtout autour d’un package => Scikit-Learn.
Un nouveau domaine de la data science se développe à grande vitesse, il s’agit du deep learning.
✓ Le Deep Learning utilise des algorithmes basés sur des réseaux neuronaux profonds qui sont complexes et
extrêmement gourmands en puissance de calcul. Le package convenable pour traiter ce modèle =>
TensorFlow
✓ TensorFlow possède une API Python très puissante. Par ailleurs, un package supplémentaire est souvent
utilisé en Python pour le deep learning. Il s’agit de => Keras.
✓ Keras constitue une couche supplémentaire afin de développer des réseaux neuronaux profonds d’une
manière plus simple. De plus, Keras possède l’avantage d’utiliser le même code pour développer des
modèles avec différents environnements de deep learning.
Des Python pour la Science de
Données
packages
pour le Les Packages pour la Science de Données :
scrapping D. Les packages pour pour le Big Data :
web tels que Le big data est un grand mot qui recouvre beaucoup d’éléments :
html5lib ou Des infrastructures distribuées permettant de stocker et de faire des calculs de manière massivement parallèle
Beautiful- sur un cluster composé de nombreux nœuds (ou des serveurs)
Soup, les Python est un langage bien adapté pour communiquer avec ces infrastructures.
packages Il est très simple en Python de stocker ou de charger des données sur un cluster Hadoop sur le file system
de calcul HDFS.
scientifique Ce qui va amener un data scientist à faire du big data c’est Apache Spark.
et statistique
Python possède un package nommé PySpark qui permet de communiquer directement avec un environ-
avec SciPy et
nement Apache Spark. De plus, avec l’évolution d’Apache Spark vers l’utilisation, d’une part d’objets
statsmodels
DataFrame qui ressemblent très fortement à ceux de Pandas et, d’autre part de modèles prédictifs avec
[Link] qui ressemblent fortement à ceux de Scikit-Learn,
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
Le développement de la data liée à Python, grâce à un packae absolument central pour Python. C’est le NumPy
NumPy ( Numerical Python ) permet de transformer un langage de programmation très classique en un
langage orienté calcul numérique.
NumPy est souvent présenté en même temps que SciPy (Scientific Python), qui est un package pour le calcul
scientifique se basant sur les structures de NumPy.
N.B: La force de NumPy réside en grande partie dans le fait qu’il n’est pas codé directement en Python mais en
C, ce qui lui donne une vitesse de traitement non égalable avec du code Python « classique ».
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
L’élément central de NumPy est => l’array
✓ L’ array : permet de stocker des valeurs dans une structure supportant tous types de calculs avancés.
Il faut au départ importer le package numpy :
- Création d’un array : c’est d’utiliser la méthode [Link]()
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- La différence entre la fonction range() et [Link]() :
Noter que la différence entre [Link]() et range() :
❑ [Link]() retourne un objet de type [Link].
❑ range() retourne un objet de type range.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- La fonction [Link]() :
✓ [Link]() permet d’obtenir un tableau 1D allant d’une valeur de départ à une valeur de fin avec un
nombre donné d’éléments.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- La manipulation des arrays avec NumPy :
L’une des forces des arrays de NumPy est la possibilité de faire des calculs. À la différence des listes, nous
pouvons faire des calculs sur les arrays :
=> Il faut bien garder en tête que toutes les opérations se font élément par élément. Par exemple, l’opérateur *
est une multiplication élément par élément. Il ne s’agit pas d’un produit matriciel
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Copies et vues d’arrays :
Lorsque vous créez un array à partir d’un autre array, aucune copie n’est effectuée. Concrètement, cela veut
dire:
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Copies et vues d’arrays :
Si vous voulez créer un array qui partage les mêmes données qu’un array existant mais qui n’affectera pas la
forme de cet array, on peut créer une vue (view) :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Le Broadcasting :
✓ On suppose généralement que les arrays ont des tailles équivalentes. Néanmoins, NumPy permet de
travailler sur des arrays de tailles différentes. C’est ce qu’on appelle le broadcasting.
✓ Le broadcasting est une manière d’étendre des arrays de dimensions inférieures afin de les adapter à des
opérations sur des opérateurs avec des dimensions plus grandes.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Le Broadcasting « suite » :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- reshape() :
✓ L’une des méthodes les plus puissantes pour manipuler des arrays est le .reshape(). Il suffit de fournir à l’array
une nouvelle forme (à condition que le produit des dimensions soit bien égal au nombre de valeurs dans l’array
initial) pour obtenir un array de format adapté.
✓ Exemple :
✓ Imaginons que nous avons un vecteur de taille 1000 et que nous désirions le transformer en une matrice de
taille 100 par 10. => La méthode .reshape() a une spécificité: elle peut prendre la valeur -1 pour l’une des
dimensions.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- reshape() « suite » :
✓ Dans ce cas, on évite de devoir calculer la taille de cette dimension. Donc, on reprend le cas de notre image,
on voudra souvent transformer cet array à trois dimensions en un array à deux dimensions (en empilant
les pixels). Pour cela, on pourrait bien sûr calculer le produit du nombre de pixels verticaux et horizontaux
mais on utilise la génération d’une structure pouvant ressembler à une image :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- reshape() « suite » :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Les arrays structurés :
✓ Les arrays que nous avons utilisé jusqu’à maintenant sont des arrays pour lesquels nous n’avions qu’un seul
type et aucun index autre que l’index numérique.
✓ Les arrays structurés sont des arrays dans lesquels plusieurs types peuvent cohabiter avec des noms
associés à ces « colonnes ». Ici dans notre exemple l’array est créé comme une suite de tuples avec
les valeurs d’une ligne. Ici on a trois colonnes et deux lignes. La partie dtype est très importante car elle
permet de définir le nom et le type d’une colonne. On utilise comme typesU10 qui est un type de NumPy
pour les chaînes de caractères à ne pas dépasser 10 caractères.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Exporter et importer des arrays :
✓ Il ne s’agit pas ici de proposer une méthode d’importation de données mais plutôt une méthode de stockage
d’arrays sur votre machine. NumPy vous permet de stocker des arrays soit en format texte soit en
format binaire généralement nommé .npy.
✓ Il possède des fonctions pour sauvegarder ou charger des arrays depuis des fichiers.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
- Exporter et importer des arrays :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
=> Il faut au départ importer le package Numpy :
✓ Les ndarrays : sont des structures à n dimensions, servent à tous les utilisateurs de Python pour stocker et
traiter de la donnée.
✓ Il a de nombreuses propriétés intéressantes pour les ndarrays :
1) On ne stocke des données que d’un seul type dans un ndarray.
2) On peut avoir des objets ndarray avec autant de dimensions que nécessaire (une dimension pour un
vecteur, deux dimensions pour une matrice…).
3) Les objets ndarray constituent un format « minimal » pour stocker des données.
4) Les objets ndarray possèdent des méthodes spécifiques optimisées permettant de faire des calculs de
manière extrêmement rapide.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ NumPy :
Il est possible de stocker des ndarray dans des fichiers afin de réduire les ressources nécessaires.
Les ndarray ont deux attributs importants : le dtype et le shape. Lorsqu’on crée un ndarray, on peut définir
le dtype et le shape ou laisser Python inférer ces valeurs.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
✓ Pour se rapprocher des structures classiques de l’analyse de données que Pandas a été créé par Wes
McKinney.
✓ Pandas est basé sur des structures du type arrays mais les enrichit en créant des DataFrame et des Series.
✓ Le DataFrame est une structure sous forme de tableau dans laquelle chaque colonne doit avoir des
éléments du même type.
✓ Le DataFrame est un tableau à deux dimensions : indexés par des index pour les lignes et des columns pour
les colonnes.
Le DataFrame est très pratique pour travailler sur des tableaux de données structurées.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
✓ Pandas est une librairie python qui permet de manipuler facilement des données à analyser , il permet de :
a. manipuler des tableaux de données avec des étiquettes de variables (colonnes) et d'individus
(lignes).
c. on peut facilement lire et écrire ces dataframes à partir ou vers un fichier tabulé.
d. on peut faciler tracer des graphes à partir de ces DataFrames grâce à matplotlib.
✓ Pour utiliser pandas, il suffit d’importer le package via : import pandas
Python pour la Science de
De manière
analogue: Il
y’a des
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
vecteurs
(Series) et
Pandas :
des matrices
(DataFrame),
Serie DataFrame
✓ Series
les matrices pouvant
est
s
un objet unidimensionnel ✓ DataFrame est une structure de données étiquetée
contenir tout type de données tel que des entiers, en 2 dimensions avec des colonnes de
sont
des flottants et des chaînes….etc types potentiellement différents.
construites
✓ La série est un tableau étiqueté unidimensionnel ✓ DataFrame est un objet bidimensionnel pouvant
avec des contenir des séries, des listes et des dictionnaires.
capable de contenir tout type de données ..
vecteurs. ✓ Les données de DataFrame sont en réalité stockées
données sous forme de pandas série
✓ La série est la structure de données d’une colonne dans la mémoire sous la forme d’une collection
unique de DataFrame de Series.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Les objets Series de Pandas :
✓ Il s’agit d’une liste de valeurs stockées dans une colonne proche d’un array de NumPy. Sa spécificité est que
les individus de cette liste sont indexés.
✓ Une Series est donc un objet à mi-chemin entre un array de NumPy (i.e suite de valeurs d’un type donné
accessibles par une indexation numérique) et un dictionnaire (i.e liste de valeurs associées à des clés).
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Les objets Series de Pandas :
✓ On peut aussi construire un objet Series à partir d’un array unidimensionnel de NumPy. On a généré un
array avec des nombres aléatoires issus d’une distribution normale centrée réduite et on obtient un
objet Series avec le même type de données.
✓ Les indices des objets Series créés peuvent être extraits en utilisant la propriété .index.
On peut ajouter quelques informations dans un objet de la classe Series, comme notamment le titre de la
Series et le titre de l’index.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accès aux éléments d’un objet Series :
N.B: On voit ici qu’on sélectionne plusieurs éléments de l’objet. Dans ce cas, il faut bien lui fournir une liste
d’éléments (d’où la présence de deux crochets).
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accès aux éléments d’un objet Series :
✓ On peut simplement faire des requêtes sur un objet Series par exemple :
Pour la deuxième requete, on voit qu’il ne s’agit pas des opérateurs classiques de Python, on utilisera ici &
pour le and, | pour le or et ! pour le not. Par ailleurs, il est très important d’utiliser des parenthèses dans ce
cadre.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Calculs sur les objets Series :
La plupart de ce qu’on a pu voir avec les arrays de NumPy est applicable aux objets Series.
Mais, il existe une différence très importante : lorsque vous faites une opération entre deux objets Series,
l’opération se fait terme à terme mais les termes sont identifiés par leur index. Si on prend par exemple :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Calculs sur les objets Series :
✓ Donc il faut utiliser :
Première méthode
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Calculs sur les objets Series :
✓ Donc il faut utiliser :
Deuxième méthode
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Les objets DataFrame de Pandas :
✓ DataFrame est un objet bidimensionnel pouvant contenir des séries, des listes et des dictionnaires.
✓ les index et les noms des colonnes sont dans ce cas générés automatiquement par
Pandas.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Les objets DataFrame de Pandas :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Les objets DataFrame de Pandas :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler des colonnes d’un DataFrame :
✓ Les éléments d’un DataFrame sont accessibles directement par colonne. On constate qu’la a le format d’un
objet Series de Pandas.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler des colonnes d’un DataFrame :
✓ Si on veut créer une nouvelle colonne dans le DataFrame, il suffit d’allouer des valeurs à une nouvelle
colonne
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler des colonnes d’un DataFrame :
✓ Si on désire supprimer cette colonne, on utilise la même méthode pour tous les objets en Python :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler des colonnes d’un DataFrame :
✓ Les colonnes sont toujours ajoutées à la fin du DataFrame, on utilise la méthode .insert() pour spécifier une
position :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler les lignes et les colonnes d’un DataFrame :
✓ Lorsque vous travaillez sur une table de données, il est rare que l’on désire travailler sur un individu précis.
Néanmoins, cela peut être utile pour extraire quelques lignes. Si on veut accéder à un élément par ligne,
on utilise .loc[ ] :
✓ Si on préfère accéder aux éléments en utilisant leur
indexation numérique, on emploie .iloc[ ] :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Accéder et manipuler les lignes et les colonnes d’un DataFrame :
✓ iloc et loc peuvent prendre plusieurs dimensions, ainsi si vous voulez extraire les éléments Obs_2 et Obs_3
pour les colonnes A et B, vous pourrez le faire en utilisant :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- L’indexation des DataFrames :
✓ Si vous voulez modifier les index de vos données, il y’a différentes options qui sont offertes :
Le .reindex() va permettre de sélectionner des colonnes et de réordonner les colonnes et les lignes.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- L’indexation des DataFrames :
✓ Pour renommer les variables, on utilise la méthode .rename():
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
- Copie et vue des objets de Pandas :
✓ Une fois que vous avez créé votre DataFrame, si vous allouez le même DataFrame à un objet il va faire
référence au premier DataFrame.
✓ Si vous créez un DataFrame à partir d’une partie de votre DataFrame, vous obtiendrez une vue de votre
DataFrame. en utilisant .view().
✓ Finalement, si vous voulez réellement une copie, il faudra utiliser la méthode .copy()
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
A. Préparation du data :
✓ La préparation des données représente au moins 80 % du travail du data scientist. Cette notion de
préparation inclut de nombreuses étapes :
Les données de l’entreprise AirBnB, qui propose une place de marché entre particuliers pour louer des
logements de vacances, ont été publiées. Nous allons nous intéresser sur la ville de Paris. Vous pouvez
télécharger les datasets, des locations recommandations,…des réservations AirBnB sur le site :
[Link]
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
A. Préparation du data :
❑ Exemple : « Les locations AirBnB à Paris »
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
A. Préparation du data :
❑ Exemple : « Les locations AirBnB à Paris »
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Importer des données structurées
La majorité des méthodes et traitements du data scientist prévoient l’utilisation de données sous deux formes:
❑ Données observations/variables : une ligne correspond à une observation et une colonne à une variable,
qui peut être soit quantitative (numérique) soit qualitative (non numérique).
❑ Matrices de distance : il peut s’agir de corrélations, de distances euclidiennes, de tableaux de comptage
(matrice de confusion)…
Ces deux structures de données sont souvent éloignées des données brutes obtenues pour une analyse.
Il va donc falloir réfléchir à la transformation des données.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
2. Le traitement des données externes (csv, SQL, xlsx, open data…)
✓ La plupart de ces données sont disponibles en ligne soit en open data soit sur des sites spécialisés.
✓ Les sources sont stockées dans un répertoire GitHub dans lequel les codes de l’ensemble de cet ouvrage sont
disponibles.
L’une des forces de Pandas est l’importation et l’exportation des données. Ce package possède un ensemble
de fonctions très large pour charger des données en mémoire et les exporter dans divers formats.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Les formats pris en charge par Pandas :
✓ Pandas dédie un sous-répertoire entier pour l’importation et à l’exportation vers des formats de données
exploitables avec d’autres outils. Par exemple les formats : csv, txt, Excel, SAS, SQL, HDF5…
✓ Pour importer un jeu de données, on va créer un objet du type DataFrame à partir de Pandas, par exemple
pour un fichier csv, on utilise :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Les formats pris en charge par Pandas :
✓ Si vous désirez créer un fichier à partir d’un DataFrame, on pourra utiliser :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer un fichier csv :
✓ Le format csv (comma separated values des séparateurs virgules) est le format le plus développé.
✓ La fonction read_csv() de Pandas est une fonction avec un nombre de paramètres impressionnant, nous ne
nous concentrons ici que sur quelques-uns qui sont importants.
✓ Si le fichier csv est classique le paramètre le plus important est : le chemin du fichier csv
✓ Si le fichier csv est en ligne => il faut mettre son lien => son adresse IP
✓ Si le fichier csv est volumineux , vous devez utiliser Pandas et Python, le plus simple est d’importer votre
fichier par morceaux en utilisant l’option chunksize.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer un fichier Excel :
✓ Microsoft Excel reste l’un des outils de base pour traiter de la donnée. Dans la plupart des projets de data
science, vous serez amené à croiser un fichier Excel, que ce soit pour stocker des données ou pour
stocker des références ou des informations
Pandas possède des outils pour importer des données en Excel sans avoir à passer par une transformation
en csv
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer un fichier Excel :
Pandas se base sur trois packages pour importer les données Excel : xlrd/xlwt, openpyxl. Ces packages ne
sont pas des dépendances obligatoires de Pandas « elles ne seront pas installées si vous installez
uniquement Pandas (elles sont dans la distribution Anaconda) » .
Si vous avez un message d’erreur, il vous faudra les installer directement depuis votre terminal (invite de
commande).
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer un fichier Excel :
✓ Il existe deux approches pour importer des données Excel. Nous utilisons ici des données de crédit bancaire
réparties dans plusieurs feuilles d’un classeur Excel.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer un fichier Excel :
✓ ExcelFile() s’agit d’utiliser une classe de Pandas permettant de créer un objet du type ExcelFile. Cet objet a
de nombreuses méthodes et offre la possibilité d’extraire des feuilles de manière plus rapide
et automatique, ainsi on pourra avoir:
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
✓ SQL est l’un des trois langages les plus utilisés par le data scientist (après Python et R). SQL va vous
permettre d’extraire des tables de données qui pourront ensuite être chargées en mémoire dans
des DataFrame.
✓ Pour passer de la base SQL à Python, il faut donc un connecteur permettant de se connecter à la base et de
faire des requêtes directement dessus.
Un package central de Python est très utile dans ce but : c’est SQLalchemy
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
✓ SQLalchemy a aujourd’hui remplacé les nombreux packages spécifiques qui pouvaient exister afin de requê-
ter des bases de données SQL en fonction du type de base : MySQL, PostgreSQL, SQLite…Pour l’utiliser :
✓ On va donc créer un connecteur qui permettra de se connecter à la base et ensuite on pourra lancer des
requêtes directement avec Pandas. Pour commencer, il faut importer les outils nécessaires de
SQLalchemy., on importe create_engine :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
✓ Une fois votre connexion vers la base créée, vous pouvez utiliser les méthodes de l’objet instancié afin de
vérifier les propriétés de la base SQL et des tables dont elle est composée. On pourra par exemple utiliser
le code: ma_con.table_names()
✓ Par ailleurs, cette connexion va nous permettre de faire des requêtes en SQL sur une base et de créer un
DataFrame contenant les données récupérées.
✓ Donc, Pandas possède trois fonctions distinctes : read_sql, read_sql_table, read_sql_query.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer une table issue d’une base de données SQL :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ Le data scientist peut avoir besoin de récupérer des données sur Internet vouloir faire du
sans développement web.
✓ Dans cette partie, deux approches seront examinées. L’approche classique du scrapping et l’approche avec
Pandas.
✓ Quelle que soit l’approche, Beautiful-Soup est un package est désigné pour ceci.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ L’approche classique du scrapping :
✓ Si on désire par exemple scrapper un site, on va devoir commencer par inspecter le code html lié à ce site. Si
on désire récupérer tous les noms de package d’un article sur les packages Python pour la data science,
on va devoir identifier la balise liée à ces noms et ensuite on pourra commencer à travailler en Python.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ L’approche classique du scrapping :
✓ En inspectant le code html, on trouve ce code: la balise de division div de ce que l’on cherche se nomme
x-accordion-heading.
<div class="x-accordion-heading"><a id="tab-5b02e7bbbe1a3" class="xaccordion-toggle collapsed"
role="tab"data-x-toggle="collapse-b"data-x-toggleable="5b02e7bbbe1a3"data-x-toggle
group="5b02e7bbbe08d" aria-selected="false" aria-expanded="false" aria-controls="panel-
5b02e7bbbe1a3">Jupyter Notebook, une interface plus intuitive</a></div>
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
2. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ L’approche classique du scrapping :
✓ On va utiliser python pour
✓ récupérer le contenu d’HTML
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ l’approche avec Pandas :
✓ Si votre objectif est de directement charger des tableaux dans des objets DataFrame, les choses se
simplifient. Pandas, combiné à Beautiful-Soup, fait une grande partie du travail pour vous. Imaginons
que l’on désire récupérer des données sportives, par exemple de tennis, nous allons utiliser les
données de Wikipédia sur le tennis et essayer de stocker les informations sur les tournois du grand
chelem
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
1. Le traitement des données externes (csv, SQL, xlsx, open data…) :
➢ Importer des données depuis le web :
✓ l’approche avec Pandas :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
3. Charger et transformer des données non structurées (images, sons, json, xml…)
✓ L’une des forces de Python pour le traitement des données est sa capacité à transformer des données non
structurées ou semi-structurées en données structurées. Nous allons étudier quelques exemples
✓ Il y’a plusieurs données qui ne sont pas structurées :
❑ Les images,
❑ Les données sonores,
❑ Les données textuelles stockées sous forme de JSON,
❑ Les données xml.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
3. Charger et transformer des données non structurées (images, sons, json, xml…)
➢ Transformation des images
✓ L’importation d’images se fait généralement en utilisant le format en array. En effet, n’importe quelle image peut
être stockée dans un array à trois dimensions composé d’entiers entre 0 et 255. Cet array est composé de
deux dimensions permettant de repérer la position de chaque pixel dans l’image et d’une 3ème dimension
composée de trois colonnes donnant la couleur (R : rouge, V : vert, B : bleu).
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
B. Chargement du data :
3. Charger et transformer des données non structurées (images, sons, json, xml…)
➢ Transformation des images
✓ Un fichier JSON « JavaScript Object Notation » est un fichier très classique de stockage de données semi-
structurées. L’importation d’un JSON est extrêmement simple avec Pandas, on va utiliser pd.read_json() :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
1. Décrire la structure de vos données
✓ Quel que soit le type de structure que vous utilisez ; les arrays, les Series ou les DataFrame, on utilise
généralement une propriété de ces objets : la propriété .shape. Celle-ci renvoie toujours un tuple, qui
aura autant d’éléments que de dimensions dans vos données.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
1. Décrire la structure de vos données
✓ Cette information est importante mais reste peu détaillée. Lorsqu’on travaille sur un DataFrame, on va
chercher à avoir beaucoup plus de détails. Pour cela, nous allons utiliser la méthode .info(). Sur le dataSet
des occupations des logements AirBnB :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
1. Décrire la structure de vos données
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
Quelles transformations pour les colonnes de vos données ?
✓ Les données que vous avez chargées jusqu’ici et que vous avez étudié ont trois formes : Les arrays de
NumPy, les Series et les DataFrame de Pandas. Votre objectif en tant que data scientist est d’extraire le plus
d’information possible de ces données. Pour cela, il va falloir les mettre en forme de manière intelligente.
Nous allons étudier différentes transformations nécessaires pour travailler sur des données comme :
- Les changements de types, - Les jointures,
- La discrétisation, - Le traitement de données temporelles,
- Les transformations numériques, - La construction de tableaux croisés
- Le traitement des colonnes avec des données qualitatives, - Le traitement des données manquantes,
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
A. Les changements de types
✓ Le typage des colonnes d’un DataFrame ou d’un array est très important pour tous les traitements en data
science. Nous nous concentrons ici sur les structures en DataFrame de Pandas.
=> Pandas va automatiquement inférer les types si vous ne lui avez pas spécifié de type à l’importation des
données ou à la création du DataFrame.
✓ Par défaut, Pandas va utiliser trois types principaux : On trouvera des booléens et tous les types définis par
NumPy
- les entiers int en 32 ou en 64 bits, - les nombres décimaux float en 32 ou en 64 bits,
- les objets Object qui rassemblent la plupart des autres types.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
A. Les changements de types
✓ on voit que la colonne price est typée en Object alors qu’il s’agit de valeurs décimales. On voit bien ici que le
codage de cette colonne inclut le signe $ devant chaque nombre. Pour faire le changement de type de cette
colonne on peut faire :
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
A. Les changements de types
✓ On débarrasse du $ en première position, puis on essaie de changer le type de la colonne « price » de
dtype: object vers float64
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
B. Les jointures et concaténations
✓ Les jointures entre Dataframes
✓ Les jointures entre DataFrame sont un outil puissant de Pandas qui ressemble aux outils disponibles en SQL.
=> Une jointure consiste à construire, à partir de deux DataFrames, un DataFrame en utilisant ce qu’on
appelle une clé de jointure qui sera un identifiant des lignes présent dans les deux DataFrame initiaux.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. La mise en forme du data :
B. Les jointures et concaténations
✓ Les jointures entre Dataframes
✓ La fonction de jointure de Pandas est la fonction [Link](). Elle prend comme paramètres deux objets
DataFrame puis des paramètres optionnels :
❑ on : choix de la clé ou des clés de jointure.
❑ how : choix de la méthode de jointure. Il faut choisir entre left, right, inner et outer.
❑ left_on (et right_on) : si les clés de jointure n’ont pas le même nom d’une table à une autre.
❑ index_left (et index_right) : on donnera ici un booléen si l’index du left ou right DataFrame est utilisé
comme clé.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas : Ignore_index : permet de ne pas prendre en compte l’index et
de renuméroter les observations dans le DataFrame obtenu.
C. La mise en forme du data : Si une colonne est manquante pour l’un des deux DataFrames,
les observations de cette colonne seront codées avec des
B. Les jointures et concaténations données manquantes.
✓ La concaténation d’arrays et de DataFrames
✓ Si nous désirons concaténer deux arrays, nous utiliserons la fonction [Link]().
✓ Il existe la fonction [Link]() pour les DataFrames qui pourra être utilisée. Si on veut ajuoter une ligne
« array » à un dataframe on peut faire :
✓ La méthode .groupby est une méthode qui permet de construire un objet à partir d’un DataFrame. Cet objet
sépare les données en fonction des modalités d’une ou de plusieurs variables qualitatives.
✓ Généralement, on suppose que le groupby est basé sur trois étapes :
1. Séparation
1. La séparation est la partie la plus simple, on sépare notre DataFrame en
2. Application
fonction d’un critère (généralement une ou plusieurs colonnes).
3. Combinaison.
2. Ensuite, on applique des fonctions sur les groupes obtenus à l’étape
précédente.
3. Finalement, on combine les résultats obtenus pour chaque groupe dans une
sortie simplifiée.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. Utilisation du GROUPBY pour décrire les données :
✓ Par exemple, sur les datasets du AirBnB, on peut faire cela par type de chambres :
✓ On sépare et on calcule la moyenne, et on rassemble les résultats dans un nouvel objet. On affiche donc
dans un objet Series les prix moyens par type de chambre. On voit ici qu’on a utilisé la méthode .mean()
de la classe des objets groupby.
Python pour la Science de
Données
Les Packages pour la Science de Données :
A. Les packages pour la gestion des données et le calcul numérique :
➢ Pandas :
C. Utilisation du GROUPBY pour décrire les données :
✓ On peut très simplement obtenir des statistiques plus poussées avec des groupby. De nombreuses méthodes
de transformation de données pourront être appliquées avec une étape .groupby().
Méthode Description
.agg() Application de plusieurs fonctions et obtention d’un DataFrame