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 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
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 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 et sets.
  • 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 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é à 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 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 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 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 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