Normalizar um vetor em Python

Manav Narula 30 janeiro 2023
  1. Use a fórmula matemática para normalizar um vetor em Python
  2. Use a função numpy.linalg.norm() para normalizar um vetor em Python
  3. Use a função sklearn.preprocessing.normalize() para normalizar um vetor em Python
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 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

Artigo relacionado - NumPy Vector