Python Numpy.linalg.norm() 함수

Minahil Noor 2023년1월30일
  1. numpy.linalg.norm()의 구문
  2. 예제 코드: numpy.linalg.norm()
  3. 예제 코드: 2 차원 배열의 노름을 찾기위한numpy.linalg.norm()
  4. 예제 코드: axis 매개 변수를 사용하여 벡터 노름과 행렬 노름을 찾기위한numpy.linalg.norm()
  5. 예제 코드: ord 매개 변수를 사용하는numpy.linalg.norm()
Python Numpy.linalg.norm() 함수

Python NumPy numpy.linalg.norm() 함수는 행렬 노름 또는 벡터 노름의 값을 찾습니다. . 매개 변수 ord는 함수가 행렬 노름 또는 벡터 노름을 찾을 지 여부를 결정합니다. 몇 가지 정의 된 값이 있습니다.

numpy.linalg.norm()의 구문

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

매개 변수

x 그것은 배열과 같은 구조입니다. 표준 값을 찾는 데 사용되는 입력 배열입니다. axis 매개 변수의 기본값은None이므로ordNone이면 배열은 1 차원 또는 2 차원이어야합니다.
ord 함수의 반환 값은이 매개 변수에 따라 다릅니다. 그것은 규범의 순서를 정의합니다. 여러 값이 있습니다. 여기를 확인하세요.
axis 정수, None또는 정수의 튜플2 개입니다. 정수이면 함수가 벡터 노름을 찾을 축을 나타냅니다. 기본값은 None으로 함수가 행렬 노름 또는 벡터 노름을 찾습니다. 2 tuple 정수 값이면 함수는 행렬 노름 값을 반환합니다.
keepdims 부울 매개 변수입니다. 기본값은 False입니다. 값이 True이면 크기가 1 인 표준 축의 치수를 표시합니다.

반환

float값 또는 N 차원 배열의 형태로 행렬 또는 벡터의 놈을 반환합니다.

예제 코드: numpy.linalg.norm()

이 함수를 사용하여 1 차원 배열의 표준을 찾습니다.

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)

출력:

The value of norm is:
257.4800963181426

norm의 값인 float값을 반환했습니다.

예제 코드: 2 차원 배열의 노름을 찾기위한numpy.linalg.norm()

이제 2 차원 배열을 전달합니다.

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)

출력:

The value of norm is:
129.35223229616102

ord 매개 변수를None이 아닌 다른 값으로 설정하고 1 차원도 2 차원도 아닌 배열을 전달하면axis 매개 변수가None이므로 함수는ValueError를 생성합니다.

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)

출력:

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.

예제 코드: axis 매개 변수를 사용하여 벡터 노름과 행렬 노름을 찾기위한numpy.linalg.norm()

먼저 벡터 노름을 찾을 것입니다.

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)

출력:

The vector norm is:
[41.78516483 80.95060222 91.83136719]

이 함수는 계산 된 벡터 노름으로 N 차원 배열을 반환했습니다.

이제 행렬 노름을 계산합니다. axis 매개 변수를 정수 값의 2-tuple로 전달합니다.

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)

출력:

The value of matrix norm is:
129.35223229616102

예제 코드: ord 매개 변수를 사용하는numpy.linalg.norm()

ord매개 변수에는 여러 값이 있습니다.

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)

출력:

The value of matrix norm is:
129.35223229616102

이 함수는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)

출력:

The value of matrix norm is:
152.28781231351272

이 함수는 행렬 표준을 생성했습니다. 특이 값의 합입니다.