Ecosystème python pour le data scientist
Programme
Dans ce chapitre nous allons voir:
- Comment utiliser différents notebooks pour python
- Les bases de de la programmation pour la science des données avec python
- Les principales structures de données en python pour la science des données
- Des exercices d'entrainement
Leçon: Tour d'horizon des outils pour le data scientist
Commençons par faire un tour d'horizon (non exhaustif) des principaux outils pour le data scientist. Dans la suite du cours nous allons nous focaliser uniquement sur les outils en python, l'écosystème d'outils en python étant le plus développé.
J'ai classé et synthétisé quelques outils populaires dans cette carte mentale
Leçon: Découverte des notebooks
Voyons ensemble au cours de cette démo comment utiliser les notebooks, logiciel que vous utiliserez souvent au cours de la formation
Leçon en autonomie : les bases du langage python pour la science des données
Introduction
Dans cette leçon, vous allez apprendre les bases du langage python et de son écosystème en utilisant des ressources en ligne (Open Classroom, kaggle et divers articles) que j'ai sélectionné pour vous.
En fonction de votre niveau, je vous invite à sélectionner les parties qui vous paraissent pertinentes pour votre apprentissage. Les ressources que je vous propose constituent le minimum à apprendre et vous serviront pour la suite de ce cours. Je vous invite à aller plus loin et étudier d'autres ressources (par exemples, celle de la section Ressources additionnelles) et à prendre la bonne habitude de consulter la documentation, généralement bien détaillée, des modules que vous utiliserez, que ce soit celle des structures de données de python, de numpy, de pandas ou matplotlib, ....
A la fin de ce cours, nous verrons ensemble une synthèse des principales notions que vous aurez travaillé. N'hésitez pas à me solliciter !
Avant de commencer
Vérifier que votre environnement de travail est fonctionnel en vous reportant à la section Pré-requis du cours !
Découvrez les bases de python et son ecosytème pour la data science
Niveau novice: si vous avez peu d'expérience en programmation
- Découvrez la notion de variable
- Découvrez comment utiliser différents types de données et les variables correspondantes en python
- Apprenez à utiliser les listes en python
- Apprenez à utiliser les dictionnaires en python
- Apprenez les structures de contrôles avec les conditions et les opérateurs logiques
- Apprenez à utiliser les boucles
for
etwhile
- Apprenez le principe de fonction et son utilisation en python
Niveau débutant: si vous avez peu d'expérience en python
Bases de python
- Si vous ne connaissez pas du tout python et que vous souhaitez en avoir un aperçu rapide, faites ce mini-cours d'introduction à python accompagné d'exercices (sur la plateforme Kaggle, en anglais)
- Si vous souhaitez allez plus loin et découvrir des bonnes pratiques d'écriture de code en survolant ce cours dédié d'Open Classroom
Programmation orientée objet
Si vous n'êtes pas familier de la programmation orienté objet, vous pouvez lire cette leçon sur Open Classroom pour en comprendre ces principes généraux
Structures de données inclues par défaut dans python
- Pour avoir un aperçu des structures basiques de python, vous pouvez consulter cet article de blog qui pourra vous servir de pense-bête !
Vous y verrez les bases pour savoir créer et manipuler les
listes
,arrays
,strings
,tuples
,dictionnaires
etsets
. - Pour vous entrainer à manipuler ces structures, vous trouverez ici des mini-exercices
Niveau intermédiaire: si vous ne connaissez pas les librairies numpy et pandas
Structures pour les données tabulaires
Dans cette partie, vous allez voir deux modules fondamentaux utilisés dans la data science: numpy qui servira préférentiellement à manipuler des données numériques organisées sous forme de tableaux (les arrays
en python), ainsi que pandas, module quasi indispensable, qui permet de manipuler des dataframe
, des tableaux de valeurs pouvant contenir des données hétérogènes. Nous allons en partie suivre un cours d'Openclassrooms intitulé Découvrez les librairies Python pour la Data Science.
-
Commencez par découvrir les arrays et leurs opération de base au travers d'un exemple pour appréhender le théorème central limite (sur lequel nous reviendrons)
-
Concentrez vous maintenant sur les opérations plus avancées des arrays: création, manipulation, indexing et slicing, ainsi que la notion de broadcasting
-
Découvrez maintenant dans quel cas il est intéressant de passer des
arrays
audataframe
et apprenez à les utiliser pour lire un fichiercsv
-
Apprenez à manipuler les dataframe avec des instructions basiques qui vous serviront à explorer votre dataframe et gérer ses valeurs manquantes. Attardez vous sur la notion plus complexe (mais puissante) de
table de pivot
-
Très souvent vous serez amené à aggréger plusieurs documents au format tabulaire en utilisant l'algèbre relationnelle et ses principales opérations dont s'inspire le langage
SQL
. Découvrez comment pandas s'inspire de la logique deSQL
pour réaliser ces opérations avec les dataframes (vous n'aurez pas besoin de connaître le langageSQL
)
Exercices
- Vous pouvez tester vos connaissance concernant les
dataframe
et leur opérations, en faisant certaines leçons ce mini cours accompagné d'exercices sur la plateforme Kaggle (en anglais) - Découvrez dans cet exercice corrigé les capacités de pandas plus en détail : indexation & sclicing, croisement de variables et visualisation de données. Les données et le notebook sont disponible ici
- Entraînez vous avec cet exercice vous proposant d'appliquer ce que vous avez appris des dataframe sur un cas d'usage quasi-réaliste.
Niveau avancé: si vous ne connaissez pas les structures avancées (optionnel)
Structures de données avancées
-
Nous avons vu plus tôt les stuctures (essentiellement tabulaires) déja implementée dans python ou son ecosystème. Ces structures sont assez généralistes et vous permettront d'analyser facilement la plupart de vos données. Parfois, vous serez confronté à des données qui seront plus facile à analyser en utilisant des structures de données particulières (par exemple les données d'un réseau social).
Découvrez dans cet article un aperçu du fonctionnement despiles (stacks)
,files (queue)
,graphes (graph)
ettable de hashage (hash table)
-
Approfondissez en particulier, via ces leçons sur OpenClassroom, le fonctionnement des piles et des files ainsi que des graphes
Ressources additionnelles (optionnelles)
Structures de données
- Vous pouvez approfondir votre connaissance de
numpy
en faisant les exercices de ce tutoriel de Nicolas Rougier. Pour ceux qui souhaitent s'amuser avec numpy, je vous conseille de regarder cet exemple d'implémentation du jeu de la vie de Conway - Si vous souhaitez vous approfondir plus en détail et vous entraîner à manipuler la plupart des structures tabulaires, vous pouvez lire ce cours plutôt complet
La programmation orientée objet (POO)
Pour ceux qui ont besoin de découvrir ou approfondir les bases de la programmation orientée objet en python, vous pouvez allez voir ce chapitre du cours dédié sur Openclassrooms.
Gestion des exceptions
En POO, la gestion des exceptions vous permet de gérer efficacement les erreurs dans vos programmes Apprenez à utiliser les exception en Python grâce à ce cette leçon dédiée sur Open Classroom
Découverte de la librairie matplotlib
Si vous avez besoin d'utiliser matplotlib, je vous conseille de regarder ce tutoriel court et precis qui pourra vous servir de pense bête
Les astuces
la notion de compréhension de liste (list comprehension), permet de manière concise de créer, filtrer ou modifier une liste très simplement sans créer de boucles apparentes.
Synthèse : les bases de python pour la data science
Retrouvez ici le notebook utilisé lors de la synthèse