Opérations sur les tableaux et broadcasting
Effectuez des calculs arithmétiques vectorisés et comprenez les règles du broadcasting.
Opérations sur les tableaux et broadcasting est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Calcul arithmétique vectorisé
NumPy applique les opérations arithmétiques élément par élément à des tableaux entiers, sans boucles Python : elles sont exécutées dans du code C optimisé.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * b) # [4 10 18]
print(a ** 2) # [1 4 9]Fonctions universelles (ufuncs)
Les ufuncs de NumPy appliquent des fonctions C élément par élément : np.sqrt, np.exp, np.log, np.sin, etc.
import numpy as np
x = np.linspace(0, np.pi, 5)
print(np.sin(x)) # [0. 0.707 1. 0.707 0.]
print(np.exp([1.0, 2.0, 3.0])) # [2.718 7.389 20.086]Opérations de réduction
Réduisez un tableau à un scalaire (ou à un tableau de dimension inférieure) avec np.sum, np.mean, np.max, np.min et np.std.
import numpy as np
m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m)) # 21
print(np.sum(m, axis=0)) # [5 7 9] — sum each column
print(np.sum(m, axis=1)) # [6 15] — sum each rowRègles de diffusion
La diffusion étend les tableaux plus petits pour les adapter aux tableaux plus grands, sans copier les données. Règle : les dimensions sont alignées à partir de la droite et les dimensions de taille 1 sont étendues.
import numpy as np
a = np.array([[1], [2], [3]]) # shape (3,1)
b = np.array([10, 20, 30]) # shape (3,)
print(a + b)
# [[11 21 31]
# [12 22 32]
# [13 23 33]]Diffusion des opérations scalaires
Un scalaire est diffusé sur tous les éléments du tableau.
import numpy as np
arr = np.arange(6).reshape(2, 3)
print(arr + 10)
# [[10 11 12]
# [13 14 15]]
print(arr * 0.5)
# [[0. 0.5 1. ]
# [1.5 2. 2.5]]Comparaisons et opérations booléennes
Les comparaisons produisent des tableaux booléens. Combinez-les avec &, | et ~ (et non avec and/or/not de Python).
import numpy as np
arr = np.array([1, 5, 3, 8, 2])
print(arr > 3) # [False True False True False]
print(arr[(arr > 2) & (arr < 7)]) # [5 3]where()
np.where(condition, x, y) renvoie les éléments de x lorsque la condition vaut True et ceux de y lorsqu’elle vaut False.
import numpy as np
arr = np.array([-2, 3, -1, 4, 0])
result = np.where(arr >= 0, arr, 0) # clip negatives to 0
print(result) # [0 3 0 4 0]Agrégations selon les axes
Indiquez axis= pour réduire le tableau selon une dimension particulière d’un tableau multidimensionnel.
import numpy as np
data = np.arange(12).reshape(3, 4)
print(data.mean(axis=0)) # mean of each column → shape (4,)
print(data.mean(axis=1)) # mean of each row → shape (3,)cumsum et diff
np.cumsum calcule les sommes cumulées ; np.diff calcule les différences entre les éléments consécutifs.
import numpy as np
prices = np.array([100, 110, 105, 115])
print(np.cumsum(prices)) # [100 210 315 430]
print(np.diff(prices)) # [10 -5 10] (daily changes)Opérations vectorisées sur les chaînes
np.char fournit des opérations vectorisées sur les chaînes de caractères contenues dans des tableaux.
import numpy as np
words = np.array(["apple", "banana", "cherry"])
print(np.char.upper(words)) # ['APPLE' 'BANANA' 'CHERRY']
print(np.char.startswith(words, "a")) # [True False False]Performances comparées aux listes Python
NumPy est 10 à 100 fois plus rapide que des boucles Python équivalentes pour les calculs numériques, car il s’exécute en C sans la surcharge de l’interpréteur Python.
import numpy as np, time
n = 1_000_000
start = time.perf_counter()
python_sum = sum(i**2 for i in range(n))
print(f"Python: {time.perf_counter()-start:.3f}s")
arr = np.arange(n)
start = time.perf_counter()
numpy_sum = (arr**2).sum()
print(f"NumPy: {time.perf_counter()-start:.3f}s")Vérification rapide
Lorsque vous additionnez un tableau de forme (3,1) à un tableau de forme (3,), quelle est la forme du résultat ?
Récapitulatif
Les opérations NumPy s’exécutent élément par élément en C (sans boucles Python). La diffusion étend les formes compatibles sans effectuer de copie. Utilisez axis= pour les réductions selon des dimensions précises. Les ufuncs (np.sin, np.exp, etc.) appliquent les opérations élément par élément à la vitesse du C.
Questions Fréquemment Posées
La leçon « Opérations sur les tableaux et broadcasting » est-elle gratuite ?
Oui — le texte complet de « Opérations sur les tableaux et broadcasting » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opérations sur les tableaux et broadcasting » ?
Effectuez des calculs arithmétiques vectorisés et comprenez les règles du broadcasting. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Opérations sur les tableaux et broadcasting » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Tableaux NumPy et dtypes
- Opérations sur les tableaux et broadcasting
- Indexation, tranches et indexation avancée
- Algèbre linéaire avec NumPy