Função Python NumPy numpy.linalg.norm()

Minahil Noor 30 janeiro 2023
  1. Sintaxe da função numpy.linalg.norm()
  2. Códigos de exemplo: numpy.linalg.norm()
  3. Códigos de exemplo: numpy.linalg.norm() para encontrar a norma de um array bidimensional
  4. Códigos de exemplo: numpy.linalg.norm() para encontrar a norma vectorial e a norma matricial utilizando o parâmetro axis
  5. Códigos de exemplo: numpy.linalg.norm() a utilizar o parâmetro ord
Função Python NumPy numpy.linalg.norm()

A função Python NumPy numpy.linalg.norm() encontra o valor da norma matricial ou da norma vectorial. O parâmetro ord decide se a função encontra a norma matricial ou a norma vectorial. Tem vários valores definidos.

Sintaxe da função numpy.linalg.norm()

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

Parâmetros

x É uma estrutura tipo arraial. É a matriz de entrada utilizada para encontrar o valor da norma. O valor por defeito para o parâmetro axis é None, portanto, o array deve ser unidimensional ou bidimensional, desde que a ord seja None.
ord O valor retornado da função depende deste parâmetro. Ele define a ordem da norma. Tem vários valores, verificar aqui.
axis É um inteiro, None ou 2 tuplas de números inteiros. Se for um número inteiro, então representa o eixo ao longo do qual a função irá encontrar a norma vectorial. O seu valor por defeito é None, o que significa que a função encontrará a norma matricial ou a norma vectorial. Se for um valor inteiro de 2 tuplas, então a função retornará o valor da norma de matriz.
keepdims É um parâmetro booleano. O seu valor por defeito é False. Se o seu valor é True então mostra as dimensões do eixo normalizado com o tamanho igual a um.

Devolver

Retorna a norma do array ou um vector sob a forma de um valor float ou de um array N-dimensional.

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

Vamos utilizar esta função para encontrar a norma de um 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)

Resultado:

The value of norm is:
257.4800963181426

Devolveu um valor float que é o valor da norma.

Códigos de exemplo: numpy.linalg.norm() para encontrar a norma de um array bidimensional

Vamos agora passar um 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)

Resultado:

The value of norm is:
129.35223229616102

Se definirmos o parâmetro ord para qualquer outro valor que não seja None e passarmos um array que não seja unidimensional nem bidimensional, a função irá gerar um ValueError, uma vez que o parâmetro axis é 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)

Resultado:

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 exemplo: numpy.linalg.norm() para encontrar a norma vectorial e a norma matricial utilizando o parâmetro axis

Encontraremos primeiro a norma vectorial.

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)

Resultado:

The vector norm is:
[41.78516483 80.95060222 91.83136719]

Note-se que a função devolveu um array N-dimensional como norma vectorial computorizada.

Agora, vamos calcular a norma de matriz. Passaremos o parâmetro axis como o 2- tupla do valor inteiro.

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)

Resultado:

The value of matrix norm is:
129.35223229616102

Códigos de exemplo: numpy.linalg.norm() a utilizar o parâmetro ord

O parâmetro ord tem vários 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)

Resultado:

The value of matrix norm is:
129.35223229616102

A função gerou o valor da norma do array 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)

Resultado:

The value of matrix norm is:
152.28781231351272

A função gerou a norma de matriz. É a soma dos valores do singular.