Normalizza un vettore in Python

Manav Narula 30 gennaio 2023
  1. Usa la formula matematica per normalizzare un vettore in Python
  2. Usa la funzione numpy.linalg.norm() per normalizzare un vettore in Python
  3. Usa la funzione sklearn.preprocessing.normalize() per normalizzare un vettore in Python
Normalizza un vettore in Python

Una nozione prevalente nel mondo dell’apprendimento automatico è normalizzare un vettore o un set di dati prima di passarlo all’algoritmo.

Quando parliamo di normalizzare un vettore, diciamo che la sua grandezza del vettore è 1, come vettore unitario.

In questo tutorial, convertiremo un array numpy in un vettore unitario.

Usa la formula matematica per normalizzare un vettore in Python

In questo metodo, calcoleremo la norma vettoriale di un array utilizzando la formula matematica. Quando dividiamo l’array con questo vettore norma, otteniamo il vettore normalizzato. Il codice seguente implementa questo.

import numpy as np

v = np.random.rand(10)

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

Produzione:

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

Nota che questo metodo restituirà un errore se la lunghezza del vettore è 0.

Usa la funzione numpy.linalg.norm() per normalizzare un vettore in Python

Il modulo NumPy in Python ha la funzione norm() che può restituire la norma vettoriale dell’array. Quindi dividiamo l’array con questo vettore norma per ottenere il vettore normalizzato. Ad esempio, nel codice seguente, creeremo un array casuale e troveremo la sua forma normalizzata usando questo metodo.

import numpy as np

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

Produzione:

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

Usa la funzione sklearn.preprocessing.normalize() per normalizzare un vettore in Python

Il modulo sklearn dispone di metodi efficienti per la pre-elaborazione dei dati e altri strumenti di apprendimento automatico. La funzione normalize() in questa libreria viene solitamente utilizzata con matrici 2-D e fornisce l’opzione di normalizzazione L1 e L2. Il codice seguente utilizzerà questa funzione con un array 1-D e troverà la sua forma normalizzata.

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)

Produzione:

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

Il metodo ravel() usato nel metodo sopra è usato per appiattire un array multidimensionale in Python.

Autore: 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

Articolo correlato - NumPy Vector