NumPy
Guide Complet des Fonctions Importantes
Avec descriptions et exemples de code
1. Création de tableaux (Array Creation)
▶ [Link]()
📌 Crée un tableau NumPy à partir d'une liste ou d'un tuple Python.
Exemple :
import numpy as np
a = [Link]([1, 2, 3, 4, 5])
print(a) # [1 2 3 4 5]
b = [Link]([[1, 2], [3, 4]])
print([Link]) # (2, 2)
▶ [Link]() / [Link]() / [Link]()
📌 Crée des tableaux remplis de zéros, de uns, ou d'une valeur constante.
Exemple :
[Link]((3, 4)) # Tableau 3x4 rempli de 0.0
[Link]((2, 3)) # Tableau 2x3 rempli de 1.0
[Link]((3, 3), 7) # Tableau 3x3 rempli de 7
np.zeros_like(a) # Même forme que 'a', rempli de 0
▶ [Link]()
📌 Crée un tableau avec des valeurs espacées régulièrement (comme range() mais
NumPy).
Exemple :
[Link](10) # [0 1 2 3 4 5 6 7 8 9]
[Link](1, 11, 2) # [1 3 5 7 9]
[Link](0, 1, 0.25) # [0. 0.25 0.5 0.75]
▶ [Link]()
📌 Crée un tableau de N valeurs espacées uniformément entre deux bornes.
Exemple :
[Link](0, 1, 5) # [0. 0.25 0.5 0.75 1. ]
[Link](0, 10, 3) # [ 0. 5. 10.]
▶ [Link]() / [Link]()
📌 Crée une matrice identité (1 sur la diagonale, 0 ailleurs).
Exemple :
[Link](3)
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
▶ [Link]() / [Link]() / [Link]()
📌 Génère des tableaux de nombres aléatoires.
Exemple :
[Link](3, 4) # Valeurs uniformes entre [0, 1)
[Link](3, 4) # Distribution normale (mu=0, sigma=1)
[Link](0, 10, (3, 3)) # Entiers aléatoires entre 0 et 9
[Link](42) # Fixe la graine pour reproductibilité
2. Manipulation de forme (Shape & Reshape)
▶ [Link] / [Link] / [Link] / [Link]
📌 Attributs fondamentaux d'un tableau : dimensions, nombre d'axes, nombre d'éléments,
type.
Exemple :
a = [Link]([[1, 2, 3], [4, 5, 6]])
print([Link]) # (2, 3) — 2 lignes, 3 colonnes
print([Link]) # 2 — tableau 2D
print([Link]) # 6 — 6 éléments au total
print([Link]) # int64
▶ [Link]()
📌 Réorganise les données d'un tableau dans une nouvelle forme (sans copier les
données).
Exemple :
a = [Link](12)
b = [Link](3, 4) # Tableau 3x4
c = [Link](2, 2, 3) # Tableau 3D
d = [Link](-1, 3) # -1 = NumPy calcule automatiquement
▶ [Link]() / [Link]()
📌 Aplatit un tableau multi-dimensionnel en 1D. flatten() retourne une copie, ravel() une vue.
Exemple :
a = [Link]([[1, 2], [3, 4]])
[Link]() # array([1, 2, 3, 4]) — copie
[Link]() # array([1, 2, 3, 4]) — vue (plus rapide)
▶ [Link]() / arr.T
📌 Transpose les axes d'un tableau (échange lignes et colonnes pour un tableau 2D).
Exemple :
a = [Link]([[1, 2, 3], [4, 5, 6]])
a.T # Tableau (3, 2)
# [[1 4]
# [2 5]
# [3 6]]
▶ np.expand_dims() / [Link]()
📌 Ajoute ou supprime des dimensions de taille 1.
Exemple :
a = [Link]([1, 2, 3]) # shape: (3,)
b = np.expand_dims(a, axis=0) # shape: (1, 3)
c = np.expand_dims(a, axis=1) # shape: (3, 1)
d = [Link]([[[1, 2, 3]]]) # shape: (1, 1, 3)
[Link](d) # shape: (3,)
3. Indexation & Slicing
▶ Indexation de base
📌 Accède à des éléments individuels ou des sous-tableaux avec des crochets.
Exemple :
a = [Link]([[10, 20, 30],
[40, 50, 60]])
a[0, 1] # 20 (ligne 0, colonne 1)
a[1, -1] # 60 (dernier élément de la ligne 1)
a[0, :] # [10, 20, 30] (toute la ligne 0)
a[:, 1] # [20, 50] (toute la colonne 1)
▶ Slicing avancé
📌 Extrait des portions de tableaux avec la syntaxe [start:stop:step].
Exemple :
a = [Link](10) # [0 1 2 3 4 5 6 7 8 9]
a[2:7] # [2 3 4 5 6]
a[::2] # [0 2 4 6 8]
a[::-1] # [9 8 7 6 5 4 3 2 1 0] (inversé)
▶ Boolean indexing (masques)
📌 Sélectionne les éléments selon une condition booléenne — très puissant pour filtrer.
Exemple :
a = [Link]([10, 25, 3, 47, 8, 15])
mask = a > 10
# [False True False True False True]
a[mask] # [25 47 15]
a[a % 2 == 0] # [10 8] (nombres pairs)
▶ Fancy indexing
📌 Sélectionne des éléments avec un tableau d'indices (retourne une copie).
Exemple :
a = [Link]([10, 20, 30, 40, 50])
indices = [0, 2, 4]
a[indices] # [10 30 50]
# Sur un tableau 2D
b = [Link]([[1,2],[3,4],[5,6]])
b[[0, 2], :] # lignes 0 et 2 : [[1,2],[5,6]]
4. Opérations mathématiques
▶ Opérations élément par élément
📌 Les opérations +, -, *, / s'appliquent élément par élément sur les tableaux.
Exemple :
a = [Link]([1, 2, 3])
b = [Link]([4, 5, 6])
a + b # [5 7 9]
a * b # [4 10 18]
a ** 2 # [1 4 9]
a / b # [0.25 0.4 0.5]
▶ [Link]() / [Link]() / [Link]() / [Link]()
📌 Calcule des statistiques descriptives sur un tableau ou selon un axe.
Exemple :
a = [Link]([[1, 2, 3],
[4, 5, 6]])
[Link](a) # 21 (total)
[Link](a, axis=0) # [5 7 9] (somme par colonne)
[Link](a, axis=1) # [6 15] (somme par ligne)
[Link](a) # 3.5
[Link](a) # 1.7078...
▶ [Link]() / [Link]() / [Link]() / [Link]()
📌 Trouve les valeurs min/max et leurs indices dans le tableau.
Exemple :
a = [Link]([3, 1, 4, 1, 5, 9, 2, 6])
[Link](a) # 1
[Link](a) # 9
[Link](a) # 1 (indice du minimum)
[Link](a) # 5 (indice du maximum)
▶ [Link]() / [Link]() / [Link]() / [Link]()
📌 Fonctions mathématiques universelles (ufuncs) appliquées élément par élément.
Exemple :
a = [Link]([-3, 4, -1, 9])
[Link](a) # [3 4 1 9]
[Link]([Link](a)) # [1.73 2. 1. 3. ]
[Link]([0, 1, 2]) # [1. 2.718 7.389]
[Link]([1, np.e]) # [0. 1.] (logarithme naturel)
np.log10([1, 10]) # [0. 1.] (log base 10)
▶ Fonctions trigonométriques
📌 [Link](), [Link](), [Link]() et leurs inverses travaillent en radians.
Exemple :
angles = [Link]([0, [Link]/6, [Link]/4, [Link]/2])
[Link](angles) # [0. 0.5 0.707 1. ]
[Link](angles) # [1. 0.866 0.707 0. ]
# Conversion degrés <-> radians
np.deg2rad(180) # 3.14159...
np.rad2deg([Link]) # 180.0
▶ [Link]() / [Link]() / @
📌 Produit scalaire de vecteurs ou multiplication de matrices.
Exemple :
a = [Link]([[1, 2], [3, 4]])
b = [Link]([[5, 6], [7, 8]])
[Link](a, b) # Produit matriciel
a @ b # Equivalent, syntaxe moderne
# [[19 22]
# [43 50]]
# Produit scalaire (vecteurs)
[Link]([1,2,3], [4,5,6]) # 32
5. Assemblage & Division de tableaux
▶ [Link]()
📌 Assemble plusieurs tableaux le long d'un axe existant.
Exemple :
a = [Link]([[1, 2], [3, 4]])
b = [Link]([[5, 6]])
[Link]([a, b], axis=0) # Empilé verticalement (3x2)
# [[1 2]
# [3 4]
# [5 6]]
▶ [Link]() / [Link]()
📌 Empile des tableaux verticalement (vstack) ou horizontalement (hstack).
Exemple :
a = [Link]([1, 2, 3])
b = [Link]([4, 5, 6])
[Link]([a, b]) # [[1 2 3]
# [4 5 6]]
[Link]([a, b]) # [1 2 3 4 5 6]
▶ [Link]() / [Link]() / [Link]()
📌 Divise un tableau en sous-tableaux égaux ou selon des indices.
Exemple :
a = [Link](12).reshape(4, 3)
[Link](a, 2) # 2 tableaux de (2,3)
[Link](a, 3) # 3 tableaux de (4,1)
[Link](a, [1, 3]) # Split à l'indice 1 et 3
6. Tri & Recherche
▶ [Link]() / [Link]()
📌 Trie un tableau ou retourne les indices qui trieraient le tableau.
Exemple :
a = [Link]([3, 1, 4, 1, 5, 9, 2, 6])
[Link](a) # [1 1 2 3 4 5 6 9]
[Link](a) # [1 3 6 0 2 4 7 5]
# Tri d'un tableau 2D par colonne
b = [Link]([[3,1],[2,4]])
[Link](b, axis=0) # Tri par colonnes
▶ [Link]()
📌 Retourne les indices où une condition est vraie, ou choisit entre deux valeurs selon la
condition.
Exemple :
a = [Link]([1, -2, 3, -4, 5])
# Retourne les indices où a > 0
[Link](a > 0) # (array([0, 2, 4]),)
# Remplace : si a > 0 → a, sinon 0
[Link](a > 0, a, 0) # [1 0 3 0 5]
▶ [Link]()
📌 Retourne les valeurs uniques (triées) d'un tableau, avec option pour les comptes.
Exemple :
a = [Link]([3, 1, 4, 1, 5, 9, 2, 6, 5])
[Link](a) # [1 2 3 4 5 6 9]
vals, counts = [Link](a, return_counts=True)
# vals: [1 2 3 4 5 6 9]
# counts: [2 1 1 1 2 1 1]
▶ [Link]()
📌 Trouve l'index où insérer une valeur pour maintenir un tableau trié.
Exemple :
a = [Link]([1, 3, 5, 7, 9])
[Link](a, 4) # 2 (insérer avant index 2)
[Link](a, 6) # 3
7. Algèbre Linéaire ([Link])
▶ [Link]() / [Link]()
📌 Calcule le déterminant et l'inverse d'une matrice.
Exemple :
A = [Link]([[1, 2], [3, 4]])
[Link](A) # -2.0
[Link](A) # [[-2. 1. ]
# [ 1.5 -0.5]]
▶ [Link]() / [Link]()
📌 Calcule les valeurs/vecteurs propres (eig) ou la décomposition en valeurs singulières
(svd).
Exemple :
A = [Link]([[4, 2], [1, 3]])
vals, vecs = [Link](A)
# vals: [5. 2.] (valeurs propres)
# vecs: matrice des vecteurs propres
U, S, Vt = [Link](A)
# S: valeurs singulières
▶ [Link]() / [Link]()
📌 Résout un système d'équations linéaires Ax=b et calcule la norme d'un vecteur/matrice.
Exemple :
# Résoudre 2x + y = 5 ; x + 3y = 10
A = [Link]([[2, 1], [1, 3]])
b = [Link]([5, 10])
x = [Link](A, b) # [1. 3.]
v = [Link]([3, 4])
[Link](v) # 5.0 (norme euclidienne)
8. Statistiques & Probabilités
▶ [Link]() / [Link]() / [Link]()
📌 Calcule la médiane, les percentiles ou les quantiles d'un tableau.
Exemple :
a = [Link]([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
[Link](a) # 5.5
[Link](a, 25) # 3.25 (1er quartile)
[Link](a, 75) # 7.75 (3e quartile)
[Link](a, 0.5) # 5.5 (même que médiane)
▶ [Link]() / [Link]() / [Link]()
📌 Somme cumulée, produit cumulé, et différences entre éléments consécutifs.
Exemple :
a = [Link]([1, 2, 3, 4, 5])
[Link](a) # [ 1 3 6 10 15]
[Link](a) # [ 1 2 6 24 120]
[Link](a) # [1 1 1 1]
[Link](a, n=2)# [0 0 0] (2e différence)
▶ [Link]() / [Link]()
📌 Calcule la matrice de corrélation ou de covariance entre variables.
Exemple :
x = [Link]([1, 2, 3, 4, 5])
y = [Link]([2, 4, 5, 4, 5])
[Link](x, y) # Matrice de corrélation 2x2
[Link](x, y) # Matrice de covariance 2x2
9. Broadcasting & Opérations avancées
▶ Broadcasting
📌 NumPy peut effectuer des opérations entre tableaux de formes différentes en 'étirant'
automatiquement les dimensions compatibles.
Exemple :
a = [Link]([[1, 2, 3], # shape (3,3)
[4, 5, 6],
[7, 8, 9]])
b = [Link]([10, 20, 30]) # shape (3,)
# b est 'broadcast' sur chaque ligne de a
a + b # [[11 22 33]
# [14 25 36]
# [17 28 39]]
▶ [Link]()
📌 Limite les valeurs d'un tableau entre un min et un max.
Exemple :
a = [Link]([1, 5, 10, 15, 20])
[Link](a, 3, 12) # [ 3 5 10 12 12]
# Très utile pour les images (pixels 0-255)
img = [Link](img_data, 0, 255)
▶ [Link]()
📌 Convertit une fonction Python classique en une fonction qui s'applique sur des tableaux
NumPy.
Exemple :
def ma_fonction(x):
return x**2 + 2*x + 1
f_vec = [Link](ma_fonction)
a = [Link]([1, 2, 3, 4])
f_vec(a) # [ 4 9 16 25]
▶ np.apply_along_axis()
📌 Applique une fonction le long d'un axe d'un tableau 2D.
Exemple :
a = [Link]([[1, 2, 3],
[4, 5, 6]])
# Applique [Link] sur chaque ligne (axis=1)
np.apply_along_axis([Link], axis=1, arr=a)
# [ 6 15]
10. Sauvegarde & Chargement
▶ [Link]() / [Link]()
📌 Sauvegarde et charge un tableau NumPy en format binaire .npy.
Exemple :
a = [Link]([[1, 2, 3], [4, 5, 6]])
[Link]('mon_tableau.npy', a) # Sauvegarde
b = [Link]('mon_tableau.npy') # Chargement
print(b) # [[1 2 3] [4 5 6]]
▶ [Link]() / np.savez_compressed()
📌 Sauvegarde plusieurs tableaux dans un fichier .npz (archive compressée optionnelle).
Exemple :
x = [Link]([1, 2, 3])
y = [Link]([4, 5, 6])
[Link]('[Link]', x=x, y=y)
data = [Link]('[Link]')
data['x'] # [1 2 3]
data['y'] # [4 5 6]
▶ [Link]() / [Link]()
📌 Sauvegarde/charge un tableau dans un fichier texte (CSV, espace, etc.).
Exemple :
a = [Link]([[1.5, 2.0], [3.1, 4.7]])
[Link]('[Link]', a, delimiter=',', fmt='%.2f')
b = [Link]('[Link]', delimiter=',')
# [[1.5 2. ]
# [3.1 4.7]]
NumPy Documentation Officielle : [Link]/doc