Leçons ·
NumPy, le moteur du calcul
Créer des tableaux, calculer sans boucle et filtrer avec un masque, avec les prix et les températures d'Awa.
Transcription
Les ventes d'Awa ont beaucoup augmenté, et elle a maintenant des milliers de prix à traiter. Avec une liste, Python doit les regarder un par un, ce qui devient lent. Elle a donc besoin d'un outil plus puissant, et cet outil s'appelle NumPy.
NumPy est une bibliothèque, c'est-à-dire une boîte à outils qu'on ajoute à Python. Pour l'utiliser, on écrit import numpy, et on ajoute as np pour lui donner un surnom plus court. Tout le monde utilise ce surnom.
Awa crée ensuite un tableau avec np point array, en lui donnant une liste de prix. Cela ressemble à une liste, mais il y a une grande différence. Laquelle ? Un tableau NumPy ne contient que des valeurs du même type, par exemple seulement des nombres. C'est ce qui lui permet de calculer très vite.
Il sait aussi faire des statistiques tout seul. Par exemple, la méthode mean calcule la moyenne, et le prix moyen est ici de 2175.
Si elle veut doubler tous ses prix, il lui faut donc une boucle ? Justement non, et c'est toute la force de NumPy. Il lui suffit d'écrire prix fois 2, et l'opération s'applique à tous les éléments d'un seul coup. Regardez : chaque étiquette est multipliée par 2.
C'est ce qu'on appelle la vectorisation. Imaginez un employé qui changerait les étiquettes une par une, puis un tampon géant qui les changerait toutes à la fois. NumPy, c'est le tampon géant. Le code est plus court, et sur de grands tableaux, il s'exécute bien plus vite.
Un tableau peut aussi avoir des lignes et des colonnes, comme un carnet de notes. Ici, chaque ligne est un élève, et chaque colonne une matière. Lisez bien le code : c'est une liste de lignes, et chaque ligne est elle-même une liste de trois notes.
Comment prendre toutes les notes d'une matière ? On écrit notes, puis entre crochets deux informations séparées par une virgule : d'abord les lignes, puis les colonnes. Les deux-points veulent dire toutes les lignes, et le 1 désigne la deuxième colonne, puisqu'on compte à partir de zéro. On obtient 15, 11 et 13.
Et si on veut un total par matière ? On utilise le paramètre axis, qui surprend souvent au début, alors prenons notre temps. Avec axis égale 0, Python descend le long des lignes, et il additionne donc chaque colonne.
Pour la première matière, 12 plus 16 plus 8 donnent 36.
Avec axis égale 1, c'est l'inverse : Python avance le long de chaque ligne, et donne un total par élève.
Retenez donc simplement ceci : axis égale 0 donne un résultat par colonne, et axis égale 1 un résultat par ligne.
Et pour ne garder que certaines valeurs, comme les jours où il a fait plus de 30 degrés ? Prenons ces six températures, chacune sur son thermomètre, et traçons une ligne à 30 degrés.
Awa écrit temperatures, puis le signe supérieur, puis 30. NumPy compare alors chaque température à 30, et il répond vrai ou faux pour chacune. Ce tableau de booléens s'appelle un masque, car il cache les valeurs où il vaut faux.
Il suffit ensuite de placer ce masque entre crochets, et NumPy ne garde que les valeurs où il vaut vrai : 31, 35 et 33. Aucune boucle n'a été nécessaire.
À vous maintenant de faire ces calculs dans la leçon, sans revoir la vidéo. Prenez votre temps, car c'est en cherchant par vous-même que vous allez les retenir.
Voix : Google Chirp 3 HD (Despina, Enceladus).
Photos : One Idea LLC, StockSnap, CC0

