Numpy
Numpy
1. Introduction
2. Pour commencer
3. Tableau Numpy
4. Remodelage de tableaux
5. Opérations arithmétiques
6. Indexation et découpage
7. Diffusion
8. Fonctions universelles (uFuncs)
9. Tri et recherche
10. Empilement et découpage de tableaux
11. Module aléatoire de Numpy
12. Algèbre linéaire avec Numpy
13. Aide-mémoire
rapide Remarques
finales
Verdict final
1. Introduction
Qu'est-ce que Numpy ?
NumPy (Numerical Python) est une bibliothèque Python utilisée pour effectuer des calculs
numériques rapides et efficaces avec des tableaux.
NumPy est une bibliothèque Python qui vous permet de stocker, de manipuler et d'effectuer
efficacement des opérations mathématiques rapides sur de grands tableaux de nombres.
NumPy s'adresse à tous ceux qui travaillent avec des données numériques en Python,
notamment :
Les data scientists – qui analysent des ensembles de données, calculent des statistiques
et préparent les données pour l'apprentissage automatique
Installation de NumPy
import numpy as np
import numpy as np
Et pour vérifier qu'il est bien installé, vous pouvez ajouter ceci dans votre script dans votre
notebook Jupyter ou votre script Python ; nous y reviendrons plus tard, mais pour l'instant
:
import numpy as np
print(np. version )
#Exemple de résultat :
2.4.3
2. Pour commencer
Importer NumPy :
Je sais que je l'ai déjà mentionné, mais c'est vraiment important : avant de pouvoir utiliser
NumPy, vous devez l'importer dans votre script Python. C'est la toute première chose à
faire pour commencer.
import numpy as np
C'est tout.
La partie n'est qu'un raccourci, ou plutôt un alias, pour qu'au lieu de taper à
chaque fois, il suffit de type np ..
numpy
Un tableau est simplement une liste de nombres avec laquelle NumPy peut travailler. Voici
comment en créer un :
import numpy as np
my_array = [Link]([10, 20, 30, 40, 50])
print(my_array)
Résultat :
[10 20 30 40 50]
Il s'agit de votre premier tableau numpy. Pour approfondir le sujet, nous allons examiner les
différents types de tableaux : les tableaux 1D, 2D et 3D.
import numpy as np
a = [Link]([10, 20, 30]) # Tableau 1D
Lorsqu'on démarre un projet d'analyse de données, NumPy est utilisé pour mettre en place un
environnement rapide et efficace permettant de travailler avec des données numériques.
Après avoir installé et importé NumPy, comme indiqué précédemment, vous chargez ou créez
votre ensemble de données sous forme de tableau NumPy de la manière suivante :
Et une fois les données dans un tableau, vous pouvez rapidement effectuer des opérations
comme celle-ci :
print([Link]()) # moyenne #
print([Link]()) total
print([Link]) # structure des données
3. Tableau Numpy
Création de tableaux :
Les tableaux Numpy peuvent être créés de plusieurs façons :
import numpy as np
arr1 = [Link]([1, 2, 3, 4])
Tableau 2D (matrice) :
import numpy as np
Tableau 3D
Plage de nombres :
est une fonction NumPy utilisée pour générer une séquence de nombres,
généralement pour les boucles.
import numpy as np
arr = [Link](1, 10, 2) #début #fin #pas arr
#résultat : est un tableau([1, 3, 5, 7,
9])
Linspace :
est une fonction NumPy utilisée pour créer des nombres régulièrement
espacés sur une plage spécifiée (crée des valeurs régulièrement espacées entre
deux points).
import numpy as np
arr = [Link](0, 1, 5) #début #fin #nombre de nombres à
générer
arr #résultat array([0. , 0.25, 0.5 , 0.75, 1.
]) :
Logspace :
est une fonction NumPy utilisée pour créer des valeurs espacées sur
une échelle logarithmique.
import numpy as np
arr = [Link](1, 3, 3) # tableau à échelle logarithmique ->
1 0^1 -> 10^3 .... 3 points
arr #résultat : tableau([ 10., 100., 1000.])
Zeros :
est une fonction NumPy utilisée pour créer un tableau rempli de 0.
import numpy as np
arr = [Link]((2, 3))
arr #résultat :array([[1., 1., 1.],[1., 1., 1.]])
Full :
est une fonction NumPy utilisée pour créer un tableau d'une forme spécifiée
rempli avec la valeur de votre choix.
import numpy as np
arr = [Link](10, 4) #tableau rempli de n'importe quelle
valeur
arr #Résultat : array([4, 4, 4, 4, 4, 4,
4, 4, 4, 4])
AUSSI
arr=[Link]([2,4],7) #deux lignes, quatre colonnes de
sept
[lignes, colonnes], valeur par défaut
tableau #tableau([[7, 7, 7, 7],[7, 7, 7,
7]])
import numpy as np
arr = [Link]([1, 2, 3.1, 4, 5])
Autre exemple :
import numpy as np
arr = [Link]([1.1, 2.1, 3.1, 4.1, 5])
arr #array([1.1, 2.1, 3.1, 4.1, 5. ])
Conversion de type
Donc oui, dans NumPy, le transtypage (également appelé conversion de type de
données) est le processus qui consiste à changer le type de données d'un tableau pour en
attribuer un autre. Le transtypage peut entraîner une perte de données (par exemple, la
conversion d'un float en int supprime les décimales).
import numpy as np
# Conversion en entiers
arr_int = [Link](np.int64)
print(arr_int) # [1 2 3 4 5]
print(arr_int.dtype) # int64
# Conversion en float32
arrfl32 = [Link](np.float32)
print(arrfl32) # [1. 2.4 3.1 4. 5.]
print([Link]) # float32
Attributs du tableau :
Shape
Voici comment vérifier les dimensions du tableau ; renvoie un tuple représentant la taille
le long de chaque axe.
import numpy as np
arr = [Link]([[1, 2, 3], [4, 5, 6]])
print([Link]) #(2, 3) 2
lignes, 3 colonnes
Taille.
import numpy as np
print([Link]) 6 # 2*3
ndim
print([Link]) 2 # Tableau 2D
dtype
4. Remodelage de tableaux
Dans NumPy, le remodelage d'un tableau consiste à modifier la forme (les dimensions) d'un
tableau sans en modifier les données.
NumPy propose trois méthodes principales pour y parvenir : reshap, ravel et flatten
,
Reshape :
import numpy as np
Ravel :
aplatit le tableau en un tableau 1D, renvoie une vue lorsque cela est possible
(les modifications apportées au tableau aplati peuvent affecter le tableau d'origine).
Flatten :
est utilisé pour aplatir un tableau en 1D. Renvoie toujours une copie, de sorte que
le tableau d'origine n'est pas affecté.
5. Opérations arithmétiques
Cette section traite des calculs sur les tableaux Numpy. Les opérations sont vectorisées
(aucune boucle n'est nécessaire).
-Addition
-Soustraction
-Multiplication
-Division
a = [Link]([1, 2, 3, 4, 5, 6])
b = [Link]([2, 3, 5, 3.1, 8, 9])
Puissance et module :
print([Link](arr)) #6
print([Link](arr)) #2,0
print([Link](arr)) #0,816496580927726
print([Link](arr)) #1
6. Indexation et découpage
L'indexation et le découpage vous permettent d'accéder à des éléments ou sous-tableaux
spécifiques d'un tableau NumPy, ou de les extraire. Cela s'apparente aux listes Python, mais
fonctionne également pour les tableaux multidimensionnels. L'indexation NumPy est plus
rapide et prend en charge l'accès multidimensionnel.
import numpy as np
Découpage multidimensionnel :
import numpy as np
arr[1] = 100
print(arr) # [10 100 30]
arr[0:2] = 0
print(arr) # [0 0 30]
Indexation avancée :
7. Diffusion
La diffusion est une fonctionnalité de NumPy qui permet d'utiliser ensemble des tableaux de
formes différentes dans des opérations arithmétiques. Concrètement, NumPy étend
automatiquement le plus petit tableau pour qu'il corresponde à la forme du plus grand. La
diffusion évite la copie de données, ce qui rend les opérations plus efficaces en termes de
mémoire.
Règles de diffusion :
NumPy compare les formes élément par élément à partir de la dimension la plus à droite :
Diffusion 1D + scalaire
a = [Link]([1, 2, 3]) b
= 5
print(a + b) #[6,7,8]
#décomposition de la
forme :
#a ->(3,)
#b --->() <----- Scalaire étendu à (3,)
Tableau 2D + tableau 1D
matrix = [Link]([[1,2,3],[4,5,6]])
row = [Link]([10, 20, 30])
matrice + ligne
#[[11,22,33],[14,25,36]]
#Décomposition de la
forme :
matrix = [Link]([[1,2,3],[4,5,6]])
col = [Link]([10, 20])
matrice + col
#[[11,12,13],[24,25,26]]
#Décomposition de la forme
#matrice ->(2,3)
#col -> (2,1) <-----diffusion le long de l'axe 1
Fonctions mathématiques
import numpy as np
import numpy as np
Arrondi
import numpy as np
Fonctions de comparaison
Conversion de types
Opérations de réduction
Exemple :
Méthodes
→ résultats cumulés
Exemple :
Exemple
import numpy as np
Point clé :
Les ufuncs sont des opérations vectorielles rapides sur des tableaux qui fonctionnent
sans boucles.
9. Tri et recherche
Tri
Le tri consiste à classer les valeurs par ordre croissant (par défaut) ou décroissant.
import numpy as np
sorted_arr = [Link](arr)
print(sorted_arr) # [1 1 2 3 4 5 6 9]
print(arr) # [3 1 4 1 5 9 2 6] (inchangé)
[Link]()
print(arr) # [1 1 2 3 4 5 6 9] (modifié)
Tri décroissant
Une méthode courante consiste à trier par ordre croissant, puis à inverser le résultat :
import numpy as np
# Ordre décroissant
import numpy as np
print([Link](mat, axis=0)) #
[[2 1]
# [3 4]]
print([Link](mat, axis=1)) #
[[1 3]
# [2 4]]
import numpy as np
idx = [Link](arr)
print(idx) # [1 2 0]
print(arr[idx]) # [10 20 30] (utiliser les indices
pour obtenir les
triées)
import numpy as np
idx = [Link](scores)
print(noms[idx]) # ['B' 'A' 'C']
Recherche
Rechercher signifie trouver où se trouvent certaines valeurs (par index).
import numpy as np
import numpy as np
import numpy as np
import numpy as np
print([Link](mat)) # 1 (aplatit)
print([Link](mat, axis=0)) # [1 0] (par colonne)
print([Link](mat, axis=1)) # [1 0] (par ligne)
[Link](s
f oarctuedltatif mais fortement recommandé)
Renvoie l'index auquel une valeur doit être insérée pour conserver l'ordre trié.
import numpy as np
import numpy as np
# Exemples en 1D
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]([a, b]) # [1 2 3 4 5 6]
m1 = [Link]([[1, 2],
[3, 4]])
m2 = [Link]([[5, 6],
[7, 8]])
# Tableau 1D
arr = [Link]([1, 2, 3, 4, 5, 6])
Division en 2D et
print([Link]) # (2, 4)
Définition d'une graine : pour vous assurer que vos résultats sont les mêmes à
chaque exécution de votre code, utilisez une graine aléatoire.
import numpy as np
rng = [Link].default_rng(42) # recommandé moderne a
pproach
Distribution uniforme (0 à 1) :
[Link](3) # Tableau 1D
[Link]((2, 3)) # Matrice 2×3
rng.standard_normal(4)
[Link](1, 10, 5)
Sélection aléatoire :
Mélange de tableaux :
Mélange vs permutation
Distributions de probabilité :
Distribution normale :
Distribution uniforme :
Distribution binomiale
[Link]() [Link]()
[Link]() rng.standard_normal()
[Link]() [Link]()
[Link]() [Link]()
Multiplication matricielle :
import numpy as np
A = [Link]([[1, 2],
[3, 4]])
B = [Link]([[5, 6],
[7, 8]])
[Link](A, B)
# [[19 22]
# [43 50]]
Transposer
[Link](A) #
[[-2. 1. ]
A = [Link]([[1, 2, 3],
[4, 5, 6]])
A.T
# [[1 4]
# [2 5]
# [3 6]]
Déterminant et inverse
Déterminant
Le déterminant est une valeur scalaire qui décrit les propriétés d'une matrice (par
exemple, l'inversibilité).
A = [Link]([[1, 2],
[3, 4]])
[Link](A) # -2,0
Inverse
Les valeurs propres et les vecteurs propres décrivent la manière dont une matrice
transforme l'espace.
A = [Link]([[4, 2],
[1, 3]])
Résolvez l'équation : Ax = b
A = [Link]([[2, 1],
[1, 3]])
b = [Link]([8, 13])
Remarques importantes
La multiplication matricielle n'est pas élément par élément (utiliser pour la
multiplication élément par élément)
Toutes les matrices n'ont pas d'inverse (le déterminant ne doit pas être nul)
Préfé[Link]() à
Taille [Link]
Dimensions [Link]
Transposer arr.T
[Link](arr), [Link](arr),
Opérations Somme / Moyenne / [Link](arr)
mathématiques Écart-type
Min / Max [Link](arr), [Link](arr)
Déterminant [Link](A)
Résoudre Ax = b [Link](A, b)
Aléatoire (API
Créer un générateur rng = [Link].default_rng(42)
moderne)
Remarques finales
Utilise les pratiques NumPy modernedse(fault_rng )
Verdict final
NumPy est une bibliothèque fondamentale pour le calcul numérique en Python et sert de pilier
aux workflows de science des données, d'apprentissage automatique et de calcul
scientifique.
Appliquez la diffusion pour des opérations sur des structures de formes différentes
Utilisez des outils puissants tels que le tri, la recherche, l'empilement et le fractionnement
L'un des points clés à retenir est que NumPy ne se limite pas aux tableaux, mais permet d'écrire
du code efficace, évolutif et optimisé pour résoudre des problèmes concrets liés aux
données.
En résumé :