Numérique et Sciences Informatiques > Langages de Programmation > Bibliothèques et Modules > Importation et utilisation de modules externes

Utiliser NumPy pour le Calcul Scientifique en Python

Découvrez NumPy, la bibliothèque Python incontournable pour le calcul scientifique. Ce guide, adapté aux lycéens, vous apprendra à manipuler des tableaux multidimensionnels, à effectuer des opérations mathématiques complexes et à optimiser vos programmes.

Qu'est-ce que NumPy ?

NumPy (Numerical Python) est une bibliothèque Python essentielle pour le calcul scientifique. Elle fournit un objet tableau multidimensionnel performant, ainsi qu'un ensemble de fonctions pour manipuler ces tableaux. NumPy est particulièrement utile pour les opérations mathématiques sur de grandes quantités de données, comme l'algèbre linéaire, les transformées de Fourier et la génération de nombres aléatoires. Elle est à la base de nombreuses autres bibliothèques scientifiques Python, comme SciPy et scikit-learn.

Pourquoi Utiliser NumPy ?

NumPy offre plusieurs avantages par rapport aux listes Python classiques pour les opérations numériques:

  • Efficacité : Les tableaux NumPy sont stockés de manière contiguë en mémoire, ce qui permet des opérations vectorisées beaucoup plus rapides que les boucles Python.
  • Fonctionnalités : NumPy fournit un large éventail de fonctions mathématiques et statistiques optimisées pour les tableaux.
  • Compatibilité : NumPy est compatible avec de nombreuses autres bibliothèques scientifiques Python.
  • Simplicité : NumPy simplifie l'écriture de code complexe grâce à ses opérations vectorisées et ses fonctions de haut niveau.

Comment Installer NumPy ?

Comme pour les autres modules externes, NumPy s'installe avec pip: pip install numpy Après l'installation, vous pouvez l'importer dans votre code: import numpy as np L'alias np est une convention courante qui rend le code plus concis.

Création de Tableaux NumPy

Il existe plusieurs façons de créer des tableaux NumPy:

  • À partir d'une liste Python: import numpy as np liste = [1, 2, 3, 4, 5] tableau = np.array(liste) print(tableau) # Affiche [1 2 3 4 5]
  • Avec des fonctions spécifiques: np.zeros(5) # Crée un tableau de 5 zéros np.ones((2, 3)) # Crée un tableau 2x3 rempli de uns np.arange(10) # Crée un tableau de 0 à 9 np.linspace(0, 1, 5) # Crée un tableau de 5 nombres équidistants entre 0 et 1

Opérations sur les Tableaux NumPy

NumPy permet d'effectuer des opérations mathématiques directement sur les tableaux, sans avoir besoin de boucles:

  • Addition: tableau1 + tableau2
  • Soustraction: tableau1 - tableau2
  • Multiplication: tableau1 * tableau2 (élément par élément)
  • Division: tableau1 / tableau2
  • Exponentiation: tableau ** 2
  • Fonctions mathématiques: np.sin(tableau), np.cos(tableau), np.exp(tableau), np.log(tableau)
NumPy gère automatiquement la compatibilité des dimensions. Si les tableaux ont des dimensions différentes mais compatibles, NumPy effectuera un broadcasting pour étendre les dimensions du tableau le plus petit.

Indexation et Tranchage des Tableaux NumPy

L'indexation et le tranchage des tableaux NumPy sont similaires à ceux des listes Python, mais avec plus de flexibilité pour les tableaux multidimensionnels:

  • Indexation: tableau[0] # Accède au premier élément tableau[1, 2] # Accède à l'élément à la ligne 1 et la colonne 2 (dans un tableau 2D)
  • Tranchage: tableau[1:5] # Sélectionne les éléments de l'indice 1 à 4 tableau[:, 0] # Sélectionne toute la première colonne (dans un tableau 2D)
Contrairement aux listes Python, les tranches de tableaux NumPy renvoient des vues, c'est-à-dire qu'elles ne créent pas de copie des données. Modifier une tranche modifie également le tableau original.

Exemples d'Applications de NumPy

Voici quelques exemples d'utilisation de NumPy:

  • Calcul de la moyenne et de l'écart type: import numpy as np donnees = np.array([10, 20, 30, 40, 50]) moyenne = np.mean(donnees) ecart_type = np.std(donnees) print(f'Moyenne: {moyenne}, Écart type: {ecart_type}')
  • Résolution d'un système d'équations linéaires: import numpy as np a = np.array([[2, 1], [1, 3]]) b = np.array([5, 8]) x = np.linalg.solve(a, b) print(x) # Affiche la solution du système
  • Manipulation d'images (représentées comme des tableaux de pixels): (Nécessite le module Pillow) from PIL import Image import numpy as np image = Image.open('image.jpg') tableau_pixels = np.array(image) print(tableau_pixels.shape) # Affiche les dimensions de l'image (hauteur, largeur, canaux de couleur)

Ce qu'il faut retenir

  • NumPy est une bibliothèque Python pour le calcul scientifique.
  • Les tableaux NumPy sont plus efficaces que les listes Python pour les opérations numériques.
  • NumPy fournit un large éventail de fonctions mathématiques et statistiques.
  • L'installation se fait avec pip install numpy.
  • Les opérations sur les tableaux sont vectorisées et plus rapides.
  • NumPy simplifie la manipulation de données numériques complexes.

FAQ

  • Quelle est la différence entre numpy.array et une liste Python ?

    La principale différence est l'efficacité. Les tableaux NumPy sont stockés de manière contiguë en mémoire et permettent des opérations vectorisées rapides. Les listes Python sont plus flexibles, mais moins efficaces pour les opérations numériques. De plus, les tableaux NumPy ne peuvent contenir qu'un seul type de données, tandis que les listes Python peuvent contenir des éléments de différents types.
  • Comment puis-je changer la forme d'un tableau NumPy ?

    Vous pouvez utiliser la méthode reshape(). Par exemple, tableau.reshape((3, 4)) transformera un tableau de 12 éléments en un tableau 3x4. Assurez-vous que le nombre total d'éléments reste le même.