Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 행렬 스택의 Moore-Penrose 의사 역행렬 계산

<시간/>

행렬 스택의 (Moore-Penrose) 의사 역행렬을 계산하려면 Python에서 numpy.linalg.pinv() 메서드를 사용합니다. SVD(특이값 분해)를 사용하고 모든 큰 특이값을 포함하여 행렬의 일반화된 역행렬을 계산합니다.

첫 번째 매개변수인 a는 의사 반전될 행렬 또는 행렬 스택입니다. 두 번째 매개변수인 rcodn은 작은 특이값에 대한 차단입니다. rcond * maximum_singular_value보다 작거나 같은 특이값은 0으로 설정됩니다. 행렬 스택에 대해 브로드캐스트합니다. 세 번째 매개변수인 hermitian이 True이면 a를 Hermitian으로 가정하여 특이값을 찾는 데 보다 효율적인 방법을 제공합니다. 기본값은 False입니다.

단계

먼저 필요한 라이브러리를 가져옵니다.

numpy를 np로 가져오기

array()를 사용하여 배열을 만듭니다.

arr =np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1] ] ])

배열을 표시합니다.

print("우리 배열...\n",arr)

치수를 확인하십시오.

print("\n배열의 차원...\n",arr.ndim)

데이터 유형을 가져옵니다.

print("\n배열 개체의 데이터 유형...\n",arr.dtype)

모양을 가져옵니다.

print("\n배열 개체의 모양...\n",arr.shape)

행렬 스택의 (Moore-Penrose) 의사 역행렬을 계산하려면 Python에서 numpy.linalg.pinv() 메서드를 사용하십시오.

print("\n결과...\n",np.linalg.pinv(arr))

예시

import numpy as np# array()arr =np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])# Display the arrayprint("Our Array...\n",arr)# Check the Dimensionsprint("\nDimensions of our Array...\n", arr.ndim)# Get Datatypeprint("\n배열 개체의 데이터 유형...\n",arr.dtype)# Get Shapeprint("\n배열 개체의 모양...\n",arr.shape) # 행렬 스택의 (Moore-Penrose) 의사 역행렬을 계산하려면 Python.print("\nResult...\n",np.linalg.pinv(arr)에서 numpy.linalg.pinv() 메서드를 사용합니다. ))

출력

우리 배열...[[[1 2][3 4]][[1 2][2 1]][[1 3][3 1]]]우리 배열의 차원...3우리 배열의 데이터 유형 배열 객체...int64배열 객체의 모양...(3, 2, 2)결과...[[[-2. 1. ][ 1.5 -0.5 ]][[-0.33333333 0.66666667][ 0.66666667 -0.33333333]][[-0.125 0.375 ][ 0.375 -0.125>