2. Premiers pas#
2.1. Vue d’ensemble#
Dans ce cours, vous apprendrez comment
utiliser Python dans le cloud
mettre en place un environnement Python local et le faire fonctionner
exécuter des commandes Python simples
exécuter un programme d’exemple
installer les bibliothèques de code qui sous-tendent ces cours
2.2. Python dans le cloud#
La façon la plus simple de commencer à coder en Python est de l’exécuter dans le cloud.
(C’est-à-dire en utilisant un serveur distant sur lequel Python est déjà installé.)
Une option à la fois gratuite et fiable est Google Colab.
Colab a également l’avantage de fournir des GPU, que nous utiliserons dans des cours plus avancés.
Des tutoriels sur la façon de débuter avec Google Colab peuvent être trouvés grâce à des recherches sur le web et par vidéo.
La plupart de nos cours incluent un bouton « Launch notebook » (avec une icône de lecture) en haut à droite qui vous connecte à une version exécutable sur Colab.
2.3. Installation locale#
Les installations locales sont préférables si vous avez accès à une machine adaptée et prévoyez de faire une quantité substantielle de programmation Python.
En même temps, les installations locales demandent plus de travail qu’une option cloud comme Colab.
Le reste de ce cours vous guide à travers certains détails associés aux installations locales.
2.3.1. La distribution Anaconda#
Le paquet Python de base est facile à installer mais n’est pas ce que vous devriez choisir pour ces cours.
Ces cours nécessitent l’ensemble de l’écosystème de programmation scientifique, qui
n’est pas fourni par l’installation de base
est pénible à installer pièce par pièce.
Ainsi, la meilleure approche pour nos besoins est d’installer une distribution Python qui contient
le langage Python de base et
des versions compatibles des bibliothèques scientifiques les plus populaires.
La meilleure distribution de ce type est Anaconda Python.
Anaconda est
très populaire
multiplateforme
complète
totalement sans rapport avec la chanson de Nicki Minaj du même nom
Anaconda est également livré avec un système de gestion de paquets pour organiser vos bibliothèques de code.
Tout ce qui suit suppose que vous adoptez cette recommandation !
2.3.2. Installer Anaconda#
Pour installer Anaconda, téléchargez le binaire et suivez les instructions.
Points importants :
Assurez-vous d’installer la version correcte pour votre système d’exploitation.
Si on vous demande pendant le processus d’installation si vous souhaitez faire d’Anaconda votre installation Python par défaut, répondez oui.
2.3.3. Mettre à jour conda#
Anaconda fournit un outil appelé conda pour gérer et mettre à niveau vos paquets Anaconda.
Une commande conda que vous devriez exécuter régulièrement est celle qui met à jour l’ensemble de la distribution Anaconda.
À titre d’exercice pratique, veuillez exécuter ce qui suit
Ouvrez un terminal
Tapez
conda update conda
Pour plus d’informations sur conda, tapez conda help dans un terminal.
2.4. Notebooks Jupyter#
Les notebooks Jupyter sont l’une des nombreuses façons possibles d’interagir avec Python et les bibliothèques scientifiques.
Ils utilisent une interface basée sur le navigateur pour Python avec
La capacité d’écrire et d’exécuter des commandes Python.
Une sortie formatée dans le navigateur, incluant tableaux, figures, animations, etc.
La possibilité d’y mêler du texte formaté et des expressions mathématiques.
Grâce à ces fonctionnalités, Jupyter est aujourd’hui un acteur majeur de l’écosystème du calcul scientifique.
Voici une image montrant l’exécution de code (emprunté ici) dans un notebook Jupyter
Bien que Jupyter ne soit pas la seule façon de coder en Python, il est idéal lorsque vous souhaitez
commencer à coder en Python
tester de nouvelles idées ou interagir avec de petits morceaux de code
utiliser de puissants environnements interactifs en ligne tels que Google Colab
partager ou collaborer sur des idées scientifiques avec des étudiants ou des collègues
Ces cours sont conçus pour être exécutés dans des notebooks Jupyter.
2.4.1. Démarrer le notebook Jupyter#
Une fois Anaconda installé, vous pouvez démarrer le notebook Jupyter.
Soit
recherchez Jupyter dans votre menu d’applications, soit
ouvrez un terminal et tapez
jupyter notebookLes utilisateurs de Windows devraient remplacer « terminal » par « invite de commande Anaconda » dans la ligne précédente.
Si vous utilisez la seconde option, vous verrez quelque chose comme ceci
La sortie nous indique que le notebook s’exécute à http://localhost:8888/
localhostest le nom de la machine locale8888fait référence au numéro de port 8888 de votre ordinateur
Ainsi, le kernel Jupyter écoute les commandes Python sur le port 8888 de notre machine locale.
Avec un peu de chance, votre navigateur par défaut s’est également ouvert avec une page web qui ressemble à ceci
Ce que vous voyez ici s’appelle le tableau de bord Jupyter.
Si vous regardez l’URL en haut, elle devrait être localhost:8888 ou similaire, correspondant au message ci-dessus.
En supposant que tout cela a bien fonctionné, vous pouvez maintenant cliquer sur New en haut à droite et sélectionner Python 3 ou similaire.
Voici ce qui apparaît sur notre machine :
Le notebook affiche une cellule active, dans laquelle vous pouvez taper des commandes Python.
2.4.2. Bases du notebook#
Commençons par la manière d’éditer du code et d’exécuter des programmes simples.
2.4.2.1. Exécuter des cellules#
Remarquez que, dans la figure précédente, la cellule est entourée d’une bordure verte.
Cela signifie que la cellule est en mode édition.
Dans ce mode, tout ce que vous tapez apparaîtra dans la cellule avec le curseur clignotant.
Lorsque vous êtes prêt à exécuter le code d’une cellule, appuyez sur Shift-Enter au lieu du Enter habituel.
Note
Il existe également des options de menu et de bouton pour exécuter le code d’une cellule que vous pouvez trouver en explorant.
2.4.2.2. Édition modale#
La prochaine chose à comprendre à propos du notebook Jupyter est qu’il utilise un système d’édition modal.
Cela signifie que l’effet de la frappe au clavier dépend du mode dans lequel vous vous trouvez.
Les deux modes sont
Le mode édition
Indiqué par une bordure verte autour d’une cellule, plus un curseur clignotant
Tout ce que vous tapez apparaît tel quel dans cette cellule
Le mode commande
La bordure verte est remplacée par une bordure bleue
Les frappes sont interprétées comme des commandes — par exemple, taper
bajoute une nouvelle cellule sous celle en cours
Pour passer
au mode commande depuis le mode édition, appuyez sur la touche
EscouCtrl-Mau mode édition depuis le mode commande, appuyez sur
Enterou cliquez dans une cellule
Le comportement modal du notebook Jupyter est très efficace une fois que vous vous y habituez.
2.4.2.3. Insérer de l’Unicode (par exemple, des lettres grecques)#
Python prend en charge l”unicode, permettant l’utilisation de caractères tels que \(\alpha\) et \(\beta\) comme noms dans votre code.
Dans une cellule de code, essayez de taper \alpha puis d’appuyer sur la touche tab de votre clavier.
2.4.2.4. Un programme de test#
Exécutons un programme de test.
Voici un programme arbitraire que nous pouvons utiliser : https://matplotlib.org/stable/gallery/pie_and_polar_charts/polar_bar.html.
Sur cette page, vous verrez le code suivant
import numpy as np
import matplotlib.pyplot as plt
# Fixation de l'état aléatoire pour la reproductibilité
np.random.seed(19680801)
# Calcul des tranches du camembert
N = 20
θ = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
colors = plt.cm.viridis(radii / 10.)
ax = plt.subplot(111, projection='polar')
ax.bar(θ, radii, width=width, bottom=0.0, color=colors, alpha=0.5)
plt.show()
Ne vous souciez pas des détails pour l’instant — exécutons-le simplement et voyons ce qui se passe.
La façon la plus simple d’exécuter ce code est de le copier-coller dans une cellule du notebook.
Avec un peu de chance, vous obtiendrez un graphique similaire.
2.4.3. Travailler avec le notebook#
Voici quelques conseils supplémentaires pour travailler avec les notebooks Jupyter.
2.4.3.1. Complétion par tabulation#
Dans le programme précédent, nous avons exécuté la ligne import numpy as np
NumPy est une bibliothèque numérique avec laquelle nous travaillerons en profondeur.
Après cette commande d’importation, les fonctions de NumPy peuvent être accessibles avec une syntaxe du type np.function_name.
Par exemple, essayez
np.random.randn(3).
Nous pouvons explorer ces attributs de np en utilisant la touche Tab.
Par exemple, ici nous tapons np.random.r et appuyons sur Tab
Jupyter propose plusieurs complétions possibles parmi lesquelles choisir.
De cette manière, la touche Tab vous aide à vous rappeler ce qui est disponible et vous fait aussi gagner de la frappe.
2.4.3.2. Aide en ligne#
Pour obtenir de l’aide sur np.random.randn, nous pouvons exécuter np.random.randn?.
La documentation apparaît dans une fenêtre divisée du navigateur, comme ceci
Cliquer en haut à droite de la partie inférieure divisée ferme l’aide en ligne.
Nous en apprendrons davantage sur la façon de créer de la documentation comme celle-ci plus tard !
2.4.3.3. Autre contenu#
En plus d’exécuter du code, le notebook Jupyter vous permet d’intégrer du texte, des équations, des figures et même des vidéos dans la page.
Par exemple, nous pouvons entrer un mélange de texte brut et de LaTeX au lieu de code.
Ensuite, nous appuyons sur Esc pour entrer en mode commande, puis tapons m pour indiquer que nous écrivons du Markdown, un langage de balisage similaire (mais plus simple) au LaTeX.
(Vous pouvez également utiliser votre souris pour sélectionner Markdown dans la liste déroulante Code juste en dessous de la liste des éléments de menu)
Maintenant, nous faisons Shift+Enter pour produire ceci
2.4.4. Déboguer du code#
Le débogage est le processus d’identification et de suppression des erreurs d’un programme.
Vous passerez beaucoup de temps à déboguer du code, il est donc important d”apprendre à le faire efficacement.
Si vous utilisez une version plus récente de Jupyter, vous devriez voir une icône de bug à l’extrémité droite de la barre d’outils.
Cliquer sur cette icône activera le débogueur Jupyter.
Note
Vous devrez peut-être aussi ouvrir le panneau du débogueur (View -> Debugger Panel).
Vous pouvez définir des points d’arrêt en cliquant sur le numéro de ligne de la cellule que vous souhaitez déboguer.
Lorsque vous exécutez la cellule, le débogueur s’arrêtera au point d’arrêt.
Vous pouvez ensuite parcourir le code ligne par ligne en utilisant les boutons du bouton « Next » de la barre d’outils CALLSTACK (située dans la fenêtre de droite).
Vous pouvez explorer davantage de fonctionnalités du débogueur dans la documentation Jupyter.
2.4.5. Partager des notebooks#
Les fichiers de notebook sont simplement des fichiers texte structurés en JSON et se terminant généralement par .ipynb.
Vous pouvez les partager de la manière habituelle dont vous partagez des fichiers — ou en utilisant des services web tels que nbviewer.
Les notebooks que vous voyez sur ce site sont des représentations html statiques.
Pour en exécuter un, téléchargez-le sous forme de fichier ipynb en cliquant sur l’icône de téléchargement en haut à droite.
Enregistrez-le quelque part, accédez-y depuis le tableau de bord Jupyter puis exécutez-le comme décrit ci-dessus.
Note
Si vous souhaitez partager des notebooks contenant du contenu interactif, vous pourriez vouloir consulter Binder.
Pour collaborer avec d’autres personnes sur des notebooks, vous pourriez jeter un œil à
Pour garder le code privé et utiliser l’interface familière de JupyterLab et Notebook, renseignez-vous sur l”extension JupyterLab Real-Time Collaboration.
2.4.6. QuantEcon Notes#
QuantEcon possède son propre site pour partager des notebooks Jupyter liés à l’économie – QuantEcon Notes.
Les notebooks soumis à QuantEcon Notes peuvent être partagés via un lien, et sont ouverts aux commentaires et aux votes de la communauté.
2.5. Installer des bibliothèques#
La plupart des bibliothèques dont nous avons besoin sont incluses dans Anaconda.
D’autres bibliothèques peuvent être installées avec pip ou conda.
Une bibliothèque que nous utiliserons est QuantEcon.py.
Vous pouvez installer QuantEcon.py en démarrant Jupyter et en tapant
!conda install quantecon
dans une cellule.
Alternativement, vous pouvez taper ce qui suit dans un terminal
conda install quantecon
Plus d’instructions peuvent être trouvées sur la page de la bibliothèque.
Pour passer à la dernière version, ce que vous devriez faire régulièrement, utilisez
conda upgrade quantecon
Une autre bibliothèque que nous utiliserons est interpolation.py.
Elle peut être installée en tapant dans Jupyter
!conda install -c conda-forge interpolation
2.6. Travailler avec des fichiers Python#
Jusqu’à présent, nous nous sommes concentrés sur l’exécution de code Python saisi dans une cellule de notebook Jupyter.
Traditionnellement, la plupart du code Python a été exécuté d’une manière différente.
Le code est d’abord enregistré dans un fichier texte sur une machine locale
Par convention, ces fichiers texte ont une extension .py.
Nous pouvons créer un exemple d’un tel fichier comme suit :
%%writefile foo.py
print("foobar")
Writing foo.py
Ceci écrit la ligne print("foobar") dans un fichier appelé foo.py dans le répertoire local.
Ici, %%writefile est un exemple de cell magic.
2.6.1. Édition et exécution#
Si vous tombez sur du code enregistré dans un fichier *.py, vous devrez considérer les questions suivantes :
comment devriez-vous l’exécuter ?
Comment devriez-vous le modifier ou l’éditer ?
2.6.1.1. Option 1 : JupyterLab#
JupyterLab est un environnement de développement intégré construit au-dessus des notebooks Jupyter.
Avec JupyterLab, vous pouvez éditer et exécuter des fichiers *.py ainsi que des notebooks Jupyter.
Pour démarrer JupyterLab, recherchez-le dans le menu des applications ou tapez jupyter-lab dans un terminal.
Vous devriez maintenant pouvoir ouvrir, éditer et exécuter le fichier foo.py créé ci-dessus en l’ouvrant dans JupyterLab.
Lisez la documentation ou recherchez une vidéo YouTube récente pour trouver plus d’informations.
2.6.1.2. Option 2 : Utiliser un éditeur de texte#
On peut également éditer des fichiers en utilisant un éditeur de texte puis les exécuter depuis des notebooks Jupyter.
Un éditeur de texte est une application spécifiquement conçue pour travailler avec des fichiers texte — tels que des programmes Python.
Rien ne surpasse la puissance et l’efficacité d’un bon éditeur de texte pour travailler avec du texte de programme.
Un bon éditeur de texte fournira
des commandes d’édition de texte efficaces (par exemple, copier, coller, rechercher et remplacer)
la coloration syntaxique, etc.
À l’heure actuelle, un éditeur de texte extrêmement populaire pour coder est VS Code.
VS Code est facile à utiliser dès l’installation et possède de nombreuses extensions de haute qualité.
Alternativement, si vous voulez un éditeur de texte gratuit exceptionnel et que cela ne vous dérange pas une courbe d’apprentissage apparemment verticale ainsi que de longues journées de peine et de souffrance pendant que toutes vos voies neuronales sont recâblées, essayez Vim.
2.7. Exercices#
Exercice 2.1
Si Jupyter est toujours en cours d’exécution, quittez en utilisant Ctrl-C dans le terminal où vous l’avez démarré.
Maintenant, relancez, mais cette fois en utilisant jupyter notebook --no-browser.
Ceci devrait démarrer le kernel sans lancer le navigateur.
Notez également le message de démarrage : il devrait vous donner une URL telle que http://localhost:8888 où le notebook s’exécute.
Maintenant
Démarrez votre navigateur — ou ouvrez un nouvel onglet s’il est déjà en cours d’exécution.
Entrez l’URL d’en haut (par exemple
http://localhost:8888) dans la barre d’adresse en haut.
Vous devriez maintenant pouvoir exécuter une session standard de notebook Jupyter.
C’est une manière alternative de démarrer le notebook qui peut aussi être pratique.
Cela peut également fonctionner lorsque vous fermez accidentellement la page web tant que le kernel est toujours en cours d’exécution.