Normalizar un vector en Python

Manav Narula 30 enero 2023
  1. Use la fórmula matemática para normalizar un vector en Python
  2. Utilice la función numpy.linalg.norm() para normalizar un vector en Python
  3. Utilice la función sklearn.preprocessing.normalize() para normalizar un vector en Python
Normalizar un vector en Python

Una noción predominante en el mundo del aprendizaje automático es normalizar un vector o conjunto de datos antes de pasarlo al algoritmo.

Cuando hablamos de normalizar un vector, decimos que su magnitud vectorial es 1, como vector unitario.

En este tutorial, convertiremos un array numpy en un vector unitario.

Use la fórmula matemática para normalizar un vector en Python

En este método, calcularemos la norma vectorial de un array utilizando la fórmula matemática. Cuando dividimos el array con este vector norma, obtenemos el vector normalizado. El siguiente código implementa esto.

import numpy as np

v = np.random.rand(10)

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

Producción :

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

Tenga en cuenta que este método devolverá algún error si la longitud del vector es 0.

Utilice la función numpy.linalg.norm() para normalizar un vector en Python

El módulo NumPy en Python tiene la función norm() que puede devolver la norma vectorial del array. Luego dividimos el array con este vector norma para obtener el vector normalizado. Por ejemplo, en el código siguiente, crearemos un array aleatoria y encontraremos su 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)

Producción :

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

Utilice la función sklearn.preprocessing.normalize() para normalizar un vector en Python

El módulo sklearn tiene métodos eficientes disponibles para el preprocesamiento de datos y otras herramientas de aprendizaje automático. La función normalize() en esta biblioteca se usa generalmente con matrices 2-D y proporciona la opción de normalización L1 y L2. El siguiente código utilizará esta función con un array 1-D y encontrará su 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)

Producción :

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

El método ravel() utilizado en el método anterior se utiliza para aplanar un array multidimensional en 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

Artículo relacionado - NumPy Vector