Python NumPy numpy.linalg.norm() Función

Minahil Noor 30 enero 2023
  1. La sintaxis de numpy.linalg.norm()
  2. Códigos de ejemplo: numpy.linalg.norm()
  3. Códigos de ejemplo: numpy.linalg.norm() para encontrar la norma de un conjunto bidimensional
  4. Códigos de ejemplo: numpy.linalg.norm() para encontrar la norma del vector y la norma de el array usando el parámetro axis
  5. Códigos de ejemplo: numpy.linalg.norm() para usar el parámetro ord
Python NumPy numpy.linalg.norm() Función

La función Python NumPy numpy.linalg.norm() encuentra el valor de la norma matriz o la norma vectorial. El parámetro ord decide si la función encuentra la norma matriz o la norma vectorial. Tiene varios valores definidos.

La sintaxis de numpy.linalg.norm()

numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)

Parámetros

x Es una estructura similar a un array. Es el array de entrada usada para encontrar el valor de la norma. El valor por defecto del parámetro axis es None, por lo que el array debe ser unidimensional o bidimensional, siempre que el “nord” sea None.
ord El valor devuelto de la función depende de este parámetro. Define el orden de la norma. Tiene varios valores, compruébelo aquí.
axis Es un número entero, None o 2 tuple de números enteros. Si es un número entero, entonces representa el eje a lo largo del cual la función encontrará la norma vectorial. Su valor por defecto es None, lo que significa que la función encontrará la norma matriz o la norma vectorial. Si es un valor entero tuple de 2, entonces la función devolverá el valor de la norma matricial.
keepdims Es un parámetro booleano. Su valor por defecto es False. Si su valor es True, entonces muestra las dimensiones del eje normalizado con el tamaño igual a uno.

Retorna

Devuelve la norma de el array o un vector en forma de un valor float o un array N-dimensional.

Códigos de ejemplo: numpy.linalg.norm()

Usaremos esta función para encontrar la norma de un array unidimensional.

from numpy import linalg as la
import numpy as np

x = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)

norm = la.norm(x)
print("The value of norm is:")
print(norm)

Producción:

The value of norm is:
257.4800963181426

Ha devuelto un valor “flotante” que es el valor de la norma.

Códigos de ejemplo: numpy.linalg.norm() para encontrar la norma de un conjunto bidimensional

Ahora pasaremos por un array bidimensional.

from numpy import linalg as la
import numpy as np

x = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

norm = la.norm(x)
print("The value of norm is:")
print(norm)

Producción:

The value of norm is:
129.35223229616102

Si ponemos el parámetro ord a cualquier otro valor que no sea None y pasamos un array que no sea ni unidimensional ni bidimensional, la función generará un ValueError ya que el parámetro axis es None.

from numpy import linalg as la
import numpy as np

x = np.array([[[4, 2], [6, 4]], [[5, 8], [7, 3]]])

norm = la.norm(x, "nuc")
print("The value of norm is:")
print(norm)

Producción:

Traceback (most recent call last):
  File "C:\Test\test.py", line 6, in <module>
    norm = la.norm(x,'nuc')
  File "<__array_function__ internals>", line 5, in norm
  File "D:\WinPython\WPy64-3820\python-3.8.2.amd64\lib\site-packages\numpy\linalg\linalg.py", line 2557, in norm
    raise ValueError("Improper number of dimensions to norm.")
ValueError: Improper number of dimensions to norm.

Códigos de ejemplo: numpy.linalg.norm() para encontrar la norma del vector y la norma de el array usando el parámetro axis

Primero encontraremos la norma del vector.

from numpy import linalg as la
import numpy as np

x = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

norm = la.norm(x, axis=0)
print("The vector norm is:")
print(norm)

Producción:

The vector norm is:
[41.78516483 80.95060222 91.83136719]

Observe que la función ha devuelto un conjunto de dimensiones N como la norma vectorial calculada.

Ahora, calcularemos la norma de el array. Pasaremos el parámetro axis como el 2-tuple del valor entero.

from numpy import linalg as la
import numpy as np

x = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

norm = la.norm(x, axis=(0, 1))
print("The value of matrix norm is:")
print(norm)

Producción:

The value of matrix norm is:
129.35223229616102

Códigos de ejemplo: numpy.linalg.norm() para usar el parámetro ord

El parámetro ord tiene varios valores.

from numpy import linalg as la
import numpy as np

x = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

norm = la.norm(x, "fro")
print("The value of matrix norm is:")
print(norm)

Producción:

The value of matrix norm is:
129.35223229616102

La función ha generado el valor de la norma matriz Frobenius.

from numpy import linalg as la
import numpy as np

x = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

norm = la.norm(x, "nuuc")
print("The value of matrix norm is:")
print(norm)

Producción:

The value of matrix norm is:
152.28781231351272

La función ha generado la norma de el array. Es la suma de los valores singulares.