NumPy Tutoriel PDF
Document Details
Uploaded by FirmerMossAgate2496
Tags
Summary
Ce document est un tutoriel sur NumPy, une bibliothèque Python pour le calcul numérique. Il couvre l'installation, l'introduction, la création de tableaux, les opérations de base et les fonctions universelles, la manipulation de tableaux et l'algèbre linéaire avec des exemples.
Full Transcript
numpy 1. Installation Pour installer NumPy, vous pouvez utiliser pip : pip install numpy 2. Introduction à NumPy NumPy (Numerical Python) est une bibliothèque qui fournit un objet tableau ap- pelé ndarray. Il est beaucoup plus performant que les listes Python classiques pour des opérations numériqu...
numpy 1. Installation Pour installer NumPy, vous pouvez utiliser pip : pip install numpy 2. Introduction à NumPy NumPy (Numerical Python) est une bibliothèque qui fournit un objet tableau ap- pelé ndarray. Il est beaucoup plus performant que les listes Python classiques pour des opérations numériques complexes, en particulier pour les grandes quan- tités de données. 2.1. Importation de NumPy Avant d’utiliser NumPy, vous devez l’importer : import numpy as np 2.2. Tableau de base (ndarray) Le cœur de NumPy est l’objet ndarray, un tableau N-dimensionnel. Contraire- ment aux listes Python, il est homogène, ce qui signifie que tous ses éléments sont du même type (généralement des nombres). 2.3. Création d’un tableau NumPy A partir d’une liste Python # Création d'un tableau 1D array_1d = np.array([1, 2, 3, 4]) # Création d'un tableau 2D array_2d = np.array([[1, 2, 3], [4, 5, 6]]) Création de tableaux avec des fonctions NumPy NumPy offre des fonctions pratiques pour créer des tableaux spécifiques. Tableau de zéros : zeros_array = np.zeros((3, 4)) # Tableau 3x4 rempli de zéros Tableau de uns : ones_array = np.ones((2, 3)) # Tableau 2x3 rempli de uns Tableau avec une valeur constante : full_array = np.full((2, 2), 7) # Tableau 2x2 rempli de 7 1 Tableau identité (matrice identité) : identity_matrix = np.eye(4) # Matrice identité 4x4 Tableau vide : empty_array = np.empty((3, 2)) # Crée un tableau vide avec des valeurs aléatoires en mémoir Vecteur régulier (linspace) : linspace_array = np.linspace(0, 1, 5) # 5 valeurs également espacées entre 0 et 1 Générer des nombres aléatoires : random_array = np.random.rand(3, 2) # Tableau 3x2 avec des nombres aléatoires entre 0 et 1 3. Propriétés d’un tableau Chaque tableau a des propriétés qui peuvent être consultées : Forme du tableau (shape) : donne les dimensions du tableau array_2d.shape # (2, 3) Nombre total d’éléments : array_2d.size # 6 Type des éléments (dtype) : array_1d.dtype # dtype('int64') Dimensions du tableau (ndim) : array_2d.ndim # 2 4. Indexation et Slicing L’indexation et le slicing dans NumPy sont similaires à ceux des listes Python, mais avec des capacités étendues pour les tableaux multidimensionnels. 4.1. Indexation simple element = array_2d[0, 1] # Accéder à l'élément sur la première ligne, deuxième colonne 4.2. Slicing Vous pouvez extraire des sous-ensembles de tableaux à l’aide du slicing. sub_array = array_2d[0, :2] # Première ligne, premières 2 colonnes 4.3. Masquage (boolean masking) mask = array_1d > 2 # Crée un masque booléen filtered_array = array_1d[mask] # Tableau filtré avec les éléments > 2 2 5. Opérations de base NumPy supporte un large éventail d’opérations arithmétiques, logiques et autres directement sur les tableaux. 5.1. Opérations élémentaires Les opérations arithmétiques sont effectuées élément par élément : array = np.array([1, 2, 3, 4]) # Addition result = array + 2 # [3, 4, 5, 6] # Multiplication result = array * 2 # [2, 4, 6, 8] # Puissance result = array ** 2 # [1, 4, 9, 16] 5.2. Opérations entre tableaux a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Addition élément par élément result = a + b # [5, 7, 9] 5.3. Fonctions universelles (ufunc) NumPy offre des fonctions mathématiques avancées appelées ufunc qui opèrent élément par élément. # Racine carrée result = np.sqrt(array) # [1.0, 1.41, 1.73, 2.0] # Somme de tous les éléments total_sum = np.sum(array) # Moyenne des éléments mean_value = np.mean(array) # Produit de tous les éléments product = np.prod(array) 3 6. Manipulation de tableaux 6.1. Redimensionnement (reshape) Vous pouvez changer la forme d’un tableau sans changer ses données. reshaped = array_2d.reshape((3, 2)) # Change de (2, 3) à (3, 2) 6.2. Concatenation NumPy permet de concaténer plusieurs tableaux : # Concatenation horizontale concat_array = np.hstack((a, b)) # [1, 2, 3, 4, 5, 6] # Concatenation verticale concat_array = np.vstack((a, b)) # [[1, 2, 3], [4, 5, 6]] 6.3. Transposition La transposition échange les axes d’un tableau. transposed = array_2d.T # Transpose le tableau 2D 7. Algebra linéaire NumPy contient un module pour l’algèbre linéaire appelé numpy.linalg. 7.1. Produit matriciel A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) product = np.dot(A, B) # Produit matriciel 7.2. Déterminant det = np.linalg.det(A) # Calcul du déterminant 7.3. Inversion de matrice inv = np.linalg.inv(A) # Inverse de la matrice 7.4. Valeurs propres et vecteurs propres eigenvalues, eigenvectors = np.linalg.eig(A) 4 8. Gestion des erreurs et des valeurs manquantes NumPy peut gérer des valeurs infinies et manquantes avec np.nan et np.inf. # Créer un tableau avec des NaN nan_array = np.array([1, np.nan, 3, np.nan]) # Tester si les éléments sont NaN is_nan = np.isnan(nan_array) # Ignorer les NaN lors des calculs mean_without_nan = np.nanmean(nan_array) # Moyenne en ignorant les NaN 9. Différences avec les listes Python Vitesse : Les opérations NumPy sont beaucoup plus rapides que les opéra- tions de liste Python. Mémoire : NumPy utilise moins de mémoire que les listes Python pour de grandes quantités de données. Opérations vectorisées : Les opérations sont effectuées sans boucles explicites, directement sur les tableaux. 5