Normalizar um vetor em Python
- Use a fórmula matemática para normalizar um vetor em Python
-
Use a função
numpy.linalg.norm()
para normalizar um vetor em Python -
Use a função
sklearn.preprocessing.normalize()
para normalizar um vetor em Python
Uma noção predominante no mundo do aprendizado de máquina é normalizar um vetor ou conjunto de dados antes de passá-lo para o algoritmo.
Quando falamos em normalizar um vetor, dizemos que sua magnitude vetorial é 1, como um vetor unitário.
Neste tutorial, converteremos un array numpy em um vetor unitário.
Use a fórmula matemática para normalizar um vetor em Python
Neste método, calcularemos a norma vetorial de un array usando a fórmula matemática. Quando dividimos o array com este vetor de norma, obtemos o vetor normalizado. O código a seguir implementa isso.
import numpy as np
v = np.random.rand(10)
normalized_v = v / np.sqrt(np.sum(v ** 2))
print(normalized_v)
Resultado:
[0.10366807 0.05821296 0.11852538 0.42957961 0.27653372 0.36389277
0.47575824 0.32059888 0.2721495 0.41856126]
Observe que este método retornará algum erro se o comprimento do vetor for 0.
Use a função numpy.linalg.norm()
para normalizar um vetor em Python
O módulo NumPy
em Python tem a função norm()
que pode retornar a norma do vetor do array. Em seguida, dividimos o array com esse vetor de norma para obter o vetor normalizado. Por exemplo, no código a seguir, criaremos um array aleatório e encontraremos sua forma normalizada usando este método.
import numpy as np
v = np.random.rand(10)
normalized_v = v / np.linalg.norm(v)
print(normalized_v)
Resultado:
[0.10881785 0.32038649 0.51652046 0.05670539 0.12873248 0.52460815
0.32929967 0.32699446 0.0753471 0.32043046]
Use a função sklearn.preprocessing.normalize()
para normalizar um vetor em Python
O módulo sklearn
possui métodos eficientes disponíveis para o pré-processamento de dados e outras ferramentas de aprendizado de máquina. A função normalize()
nesta biblioteca é normalmente usada com arrays 2-D e oferece a opção de normalização L1 e L2. O código a seguir usará essa função com un array 1-D e encontrará sua forma normalizada.
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)
Resultado:
[0.19361438 0.36752554 0.26904722 0.10672546 0.32089067 0.48359538
0.01824837 0.47591181 0.26439268 0.33180998]
O método ravel()
usado no método acima é usado para achatar um array multidimensional em Python.
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