Analyse de données en Jupyter#

Une analyse de données répond aux questions suivantes:

  • quelles sont les données,

  • quelle est la question (notre objectif),

  • comment faire pour y répondre (outils statistiques),

  • quels sont les résultats (nos observations) et

  • quelles sont les conclusions (notre interprétation).

Une analyse de données prend la forme d’un document narratif expliquant les objectifs, hypothèses et étapes de l’analyse: il est typiquement écrit en anglais pour qu’il puisse être partagé avec le plus grand nombre. Cette année nous travaillerons avec des documents rédigés en français par souci pédagogique.

Pourquoi utiliser Jupyter ?#

Depuis quelques années, les feuilles de travail (notebook) Jupyter sont un des moyens prisés pour rédiger de telles analyses de données et mener les calculs sous-jacents. Il s’agit de documents permettant d’entremêler narration (textes, formules), visualisation, interaction, calcul et programmation.

Le document que vous êtes en train de lire est une feuille Jupyter. On peut y mettre des calculs comme ci-dessous. Pour exécuter le calcul, cliquez dans la cellule ci-dessous et tapez Shift-Enter:

1 + 1

Utilisez maintenant la cellule ci-dessous pour calculer 1+2; puis réutilisez la même cellule pour calculer 3*4:

1 + 2

Vous rencontrerez aussi des cellules à compléter, comme la suivante, dans lesquelles vous remplacerez les deux lignes # VOTRE CODE ICI et raise NotImplementedError() par le calcul à faire; calculez cinq fois sept:

### BEGIN SOLUTION
5 * 7
### END SOLUTION

Vous pouvez aussi éditer les cellules contenant du texte comme celle-ci. Allez-y: double-cliquez dans la cellule et mettez votre nom là:

BEGIN SOLUTION
XXXXXXX
END SOLUTION

Puis Shift-Enter.

Notez que certaines cellules de ce document sont en lecture-seule. Vous ne pouvez pas les modifier. En revanche, vous pouvez toujours insérer de nouvelles cellules libres (Bouton + de la barre de menu).

On peut ausi mettre des formules mathématiques dans une cellule: $\(\frac 1 {1-\frac 1z} = \sum_{i=0}^\infty \frac 1 {z^i}\)$

Correction semi-automatique avec nbgrader#

Lors d’un TP noté, une grande partie de la correction est automatique à l’aide de l’outil nbgrader et s’appuie sur des tests similaires à ceux du premier semestre. La correction automatique se fait par intégration continue sur GitLab au moment du dépôt (submit ou clic sur le bouton Déposer du tableau de bord) et peut prendre quelques minutes. Vous pouvez ensuite télécharger le résultat (fetch_feedback) pour le consulter.

Le reste de la correction est manuelle: vos enseignants regarderont vos réponses, vos interprétations des résultats et attribueront des points à chacune d’entre elles.

La première séance est une séance d’entraînement; les notes, indicatives, vous permettent de prendre en main le mécanisme. Si vous soumettez votre travail (même incomplet), vous aurez les cinq points du TP.

Voici un exemple : Dans la cellule suivante, calculez la somme de 3 et de 4, et stockez le résultat dans la variable s:

### BEGIN SOLUTION
s = 3 + 4
### END SOLUTION

La commande suivante est un test qui vérifie votre réponse; vous reconnaîtrez le assert que nous utilisions en python et en C++ au premier semestre:

assert s == 7

Consultez les instructions pour:

  1. Déposer votre travail sur GitLab (avec le tableau de bord ou le terminal).

  2. Consulter le résultat de la correction automatique (avec le tableau de bord).

Scores et notes

  • Certains TPs seront notés, une partie de la note venant du score obtenu avec la correction automatique, et l’autre d’un score attribué par vos enseignants. Pour ce premier TPs, il suffit que vous le déposiez en temps et en heure sur GitLab pour obtenir tous les points.

  • Les feuilles peuvent contenir des tests cachés (qui influencent le score).

Au boulot!#

Dans cette feuille, vous avez appris les rudiments de Jupyter et de l’environnement de travail :

  • organisation d’une feuille de TP,

  • dépôt et correction de TP,

  • création de cellules,

Il est maintenant temps de faire quelques rappels sur Python et les compréhensions! Passez à la feuille suivante Python: fonctions et compréhensions.