Manipuler les listes avec la bibliothèque numpy
Ces listes sont créées et manipulées à l'aide d'instructions comprises dans la bibliothèque numpy. Elle contient par ailleurs d'autres commandes qui peuvent s'avérer utiles dans les programmes de lycée.
Il est nécessaire d'importer cette bibliothèque en début de programme pour l'utiliser.
import numpy as np # Importation de la bibliothèque numpy qui sera appelée par le raccourci np
Création
Définition : Définir une liste numpy
Les éléments d'une liste numpy sont placés entre [ ] et séparés par des virgules.
La syntaxe est donnée ci-dessous pour un exemple d'une liste de températures :
temperatures = np.array([20.2, 15.6, 10.3, 8.4, 17.9, 6.6]) # Liste de 6 valeurs numérotées de 0 à 5
Attention : les indices d'une liste commencent à 0.
Méthode : Longueur d'une liste
Pour connaître le nombre de termes d'une liste, on utilise la commande ci-dessous :
l = len(temperatures)
Avec la liste définie précédemment, l vaut 6.
Manipulation des listes numpy
Méthode : Afficher les termes d'une liste
Pour afficher tous les les termes d'une liste :
print(temperatures)
Pour afficher le dernier terme d'une liste :
print(temperatures[-1]) # On affiche le dernier terme de la liste.
Pour extraire certains termes d'une liste :
print(temperatures[0:4:2])
On affiche les termes d'indices 0 à 4, de deux en deux.
Les termes d'indices supérieur ou égal à 4 ne sont pas affichés.
Méthode : Ajouter ou supprimer des termes à une liste
Pour ajouter un terme à la fin d'une liste, exemple avec la liste temperatures :
temperatures = np.append(temperatures, 30.3) # Ajoute la valeur 30.3 à la fin de la liste print(temperatures) # afficihage pour vérification
Pour supprimer un terme d'indice particulier d'une liste :
temperatures = np.delete(temperatures, 2) # supprime la valeur de rang 2 dans la liste, donc la troisième valeur
print(temperatures)
Calculer avec les listes numpy
Les listes numpy sont particulièrement simples à utiliser pour effectuer des calculs. Elles peuvent être traitées comme des variables, sans avoir recours à des boucles.
Méthode : Obtenir une nouvelle liste de valeurs à l'aide d'un calcul
On suppose qu'on dispose d'une liste numpy contenant des valeurs de la vitesse v = [2, 3, 4, 6, 7, 8].
L'énergie cinétique se calcule par \(E_C = \dfrac{1}{2} \cdot m \cdot v^2\), ce qui se traduit simplement avec une liste numpy par :
v = np.array([2, 3, 4, 6, 7, 8]) # liste contenant les vitesses
m = 2.5 # valeur de la masse stockée dans une variable
Ec = 0.5 * m * v**2 # crée la liste des énergies cinétiques à partir de la liste des vitesses
print(Ec) # affichage pour vérification
Exemple : Création d'une liste de dates entre 0 et 1,5 s, par pas de 0,01 s
La bibliothèque numpy possède la fonction linspace spécialement dédiée.
Utilisée dans l'exemple ci-dessous, on obtient une liste de 101 valeurs comprises entre 0 et 1,5, bornes comprises.
import numpy as np # Importation de la bibliothèque
t = np.linspace(0, 1.5, 101) # Création de la liste de valeurs
print(t) # Affichage pour vérification
Mémo rapide
Fondamental :
CODE | FONCTION |
---|---|
| Importe la bibliothèque numpy (nécessaire pour utiliser les fonctions mathématiques opérant sur des tableaux de valeurs ci-dessous). |
| Crée un tableau de valeurs « a » allant de -20 inclu à 20 exclu avec un pas de 0.01. |
| Crée un tableau de valeurs « b » allant de -20 inclu à 20 inclu avec 400 valeurs régulièrement espacées. |
| Renvoie le nombre de valeurs contenues dans le tableau « b ». |
Attention les angles doivent être en rad dans les sin, cos, arcsin... Lors de l'affichage de courbes, ne pas hésiter à les remettre en deg afin que cela soit plus "parlant". | Crée un tableau de valeurs « c » ayant pour valeurs sin(2π*a)/a pour les différentes valeurs du tableau « a » créées préalablement. Crée un tableau de valeurs « d » ayant pour valeurs 0.1b pour les différentes valeurs du tableau « b » créées préalablement. |
| Fait une copie du tableau de valeurs « a ». |
D'après Boîte à outils Python - Stéphane Génouel - http://stephane.genouel.free.fr/FT/Dossier_Multimedia/000Tutoriel/Pyzo_gen_auroraW/co/Pyzo.html