UKOnline

Hello, World!

Avant d'entamer notre découverte des bases du calcul numérique à l'aide de l'écosystème SciPy, analysons un programme SciPy. Le défaut du mode interactif est qu'il faut en permanence retaper toutes les instructions depuis le début en cas d'erreur. Il est bien plus pratique de pouvoir écrire un script et d'ensuite le faire exécuter d'une traite. Pour cela, il suffit en fait d'écrire un programme Python, et puis de l'exécuter. Le programme d'exemple que l'on analyse ici utilise les librairies NumPy et Matplotlib pour construire une version revisitée de l'exemple « Hello, World! » utilisé dans tout tutoriel qui fait découvrir un nouveau langage de programmation.

Exemple d'histogramme avec numpy et matplotlib
Un dessin 2D interactif d'un histogramme de données, avec une courbe superposée, à l'aide des librairies Numpy et Matplotlib de l'écosystème SciPy peut être manipulé directement depuis une interface graphique.

La figure 7 montre le résultat de l'exécution de ce programme d'exemple. Il s'agit d'un dessin 2D interactif, des commandes étant, en effet, disponibles pour manipuler le dessin (déplacement, zoom, etc.). Plus précisément, on voit un histogramme et une courbe qui ont été dessinés à partir de données définies dans un vecteur.

Détaillons les parties principales du programme, repris intégralement à la figure 8. Il faut tout d'abord importer les modules nécessaires, à savoir numpy et matplotlib.pyplot dans notre cas. Pour rendre le code plus compact, les alias np et plt ont été définis lors de l'import :

On crée ensuite deux vecteurs x et data qui contiennent, respectivement, les abscisses et les ordonnées des graphes à dessiner. Pour x, on crée une séquence de naturels consécutifs allant de $0$ à $8$ avec la fonction arange et pour data, on transforme une liste Python en une structure compréhensible pour NumPy avec la fonction array :

Enfin, on en arrive au dessin en tant que tel. On dessine l'histogramme avec la couleur par défaut (bleu) avec la fonction bar, puis la courbe par-dessus en rouge avec la fonction plot. Enfin, le texte « Hello, World! » est ajouté grâce à la fonction text. La fonction show conclut en affichant une fenêtre avec le résultat :

Ce premier exemple, certes simple, mais plutôt complet, montre comment il est plutôt facile d'obtenir rapidement des dessins de données à l'aide de deux librairies de l'écosystème Scipy.

Le fichier scipy-hello-world.py contient un programme d'exemple d'utilisation des librairies NumPy et Matplotlib pour réaliser un dessin 2D avec un histogramme et une courbe, repris à la figure 7.

Ce premier exemple, certes simple, mais assez complet, montre comment il est plutôt facile d'obtenir rapidement des dessins de données à l'aide de deux librairies de l'écosystème Scipy. Notez qu'on aurait pu avoir le graphe directement dans une console interactive, en travaillant avec IPython et une console QT, comme le montre la figure 9.

Graphe produit avec Matplotlib et IPython
La console QT, combinée avec IPython permet également d'afficher directement des graphes réalisés avec la librairie Matplotlib.