Normaliser un vecteur en Python

Manav Narula 30 janvier 2023
  1. Utilisez la formule mathématique pour normaliser un vecteur en Python
  2. Utilisez la fonction numpy.linalg.norm() pour normaliser un vecteur en Python
  3. Utilisez la fonction sklearn.preprocessing.normalize() pour normaliser un vecteur en Python
Normaliser un vecteur en Python

Une notion répandue dans le monde de l’apprentissage automatique consiste à normaliser un vecteur ou un ensemble de données avant de le transmettre à l’algorithme.

Lorsque nous parlons de normaliser un vecteur, nous disons que sa magnitude vectorielle est de 1, en tant que vecteur unitaire.

Dans ce tutoriel, nous allons convertir un tableau numpy en un vecteur unitaire.

Utilisez la formule mathématique pour normaliser un vecteur en Python

Dans cette méthode, nous allons calculer la norme vectorielle d’un tableau en utilisant la formule mathématique. Lorsque nous divisons le tableau avec ce vecteur de norme, nous obtenons le vecteur normalisé. Le code suivant implémente cela.

import numpy as np

v = np.random.rand(10)

normalized_v = v / np.sqrt(np.sum(v ** 2))
print(normalized_v)

Production:

[0.10366807 0.05821296 0.11852538 0.42957961 0.27653372 0.36389277
 0.47575824 0.32059888 0.2721495  0.41856126]

Notez que cette méthode renverra une erreur si la longueur du vecteur est 0.

Utilisez la fonction numpy.linalg.norm() pour normaliser un vecteur en Python

Le module NumPy en Python a la fonction norm() qui peut renvoyer la norme vectorielle du tableau. Ensuite, nous divisons le tableau avec ce vecteur de norme pour obtenir le vecteur normalisé. Par exemple, dans le code ci-dessous, nous allons créer un tableau aléatoire et trouver sa forme normalisée en utilisant cette méthode.

import numpy as np

v = np.random.rand(10)
normalized_v = v / np.linalg.norm(v)
print(normalized_v)

Production:

[0.10881785 0.32038649 0.51652046 0.05670539 0.12873248 0.52460815
 0.32929967 0.32699446 0.0753471  0.32043046]

Utilisez la fonction sklearn.preprocessing.normalize() pour normaliser un vecteur en Python

Le module sklearn dispose de méthodes efficaces pour le prétraitement des données et d’autres outils d’apprentissage automatique. La fonction normalize() de cette bibliothèque est généralement utilisée avec des matrices 2D et offre l’option de normalisation L1 et L2. Le code ci-dessous utilisera cette fonction avec un tableau 1-D et trouvera sa forme normalisée.

import numpy as np
from sklearn.preprocessing import normalize

v = np.random.rand(10)
normalized_v = normalize(v[:, np.newaxis], axis=0).ravel()
print(normalized_v)

Production:

[0.19361438 0.36752554 0.26904722 0.10672546 0.32089067 0.48359538
 0.01824837 0.47591181 0.26439268 0.33180998]

La méthode ravel() utilisée dans la méthode ci-dessus est utilisée pour aplatir un tableau multidimensionnel en Python.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - NumPy Vector