Skip to content

Ecosystème python pour le data scientist

Programme

Dans ce chapitre nous allons voir:

  • Comment utiliser différents notebooks pour python
  • Les bases 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'entraînement

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, des logiciels 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 (OpenClassroom, 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 exemple, 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 de matplotlib, ....

À 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érifiez que votre environnement de travail est fonctionnel en vous reportant à la section Pré-requis du cours !

Découvrez les bases de python et son ecosystème pour la data science

Niveau novice: si vous avez peu d'expérience en programmation
Niveau débutant: si vous avez peu d'expérience en python

Bases de python

Programmation orientée objet

Si vous n'êtes pas familier avec la programmation orienté objet, vous pouvez lire cette leçon sur OpenClassroom 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 et sets.
  • Pour vous entraîner à 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érations 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 au dataframe et apprenez à les utiliser pour lire un fichier csv

  • 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é à agréger plusieurs documents au format tabulaire en utilisant l'algèbre relationnel et ses principales opérations dont s'inspire le langage SQL. Découvrez comment pandas s'inspire de la logique de SQL pour réaliser ces opérations avec les dataframes (vous n'aurez pas besoin de connaître le langage SQL)

Exercices

  • Vous pouvez tester vos connaissances 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 disponibles 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 structures (essentiellement tabulaires) déja implementées dans python ou son écosystè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 faciles à 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 des piles (stacks), files (queue), graphes (graph) et table 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 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 aller 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 exceptions en Python grâce à cette leçon dédiée sur OpenClassroom

Découverte de la librairie matplotlib

Si vous avez besoin d'utiliser matplotlib, je vous conseille de regarder ce tutoriel court et précis 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