이번 튜토리얼에서는 Python 행렬에 대해 배워보겠습니다. Python에서 행렬 객체는 다차원적이라는 점에서 중첩 목록과 유사합니다. Numpy 배열을 사용하여 행렬을 만드는 방법을 살펴보겠습니다. 다음에는 이해를 돕기 위해 다양한 행렬 연산 방법과 예제를 살펴보겠습니다.
Python의 매트릭스란 무엇입니까?
Python의 행렬은 직사각형 Numpy 배열입니다. 이 배열은 2차원 배열이어야 합니다. 여기에는 배열의 행과 열에 저장된 데이터가 포함됩니다. Python 매트릭스에서는 가로 항목 계열을 '행'이라고 하고 세로 항목 계열을 '열'이라고 합니다. 행과 열은 중첩된 목록처럼 서로 겹쳐져 있습니다. 행렬에 r개의 행과 c개의 열이 포함되어 있는 경우(여기서 r과 c는 양의 정수임) r x c는 이 행렬 객체의 순서를 결정합니다.
문자열, 정수 및 다른 데이터 유형의 객체를 행렬에 저장할 수 있습니다. 데이터는 행렬의 행과 열 스택에 저장됩니다. 행렬은 수학과 과학 계산에 중요한 데이터 구조입니다. Python에서는 행렬 객체에 대한 내장 유형이 포함되어 있지 않기 때문에 목록 목록 또는 중첩 목록을 행렬로 간주합니다.
이 튜토리얼에서는 다음과 같은 행렬 연산 방법 목록을 살펴보겠습니다.
- 매트릭스 추가
- 행렬 곱셈
- 행렬 곱셈 연산자
- Numpy를 사용하지 않는 행렬 곱셈
- 역행렬
- 행렬 전치
- 행렬에서 배열로
Python의 행렬은 어떻게 작동합니까?
행렬을 만들기 위해 2차원 배열에 데이터를 씁니다. 다음과 같이 수행됩니다.
예
마크다운 밑줄
[ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ]
3행 5열의 행렬을 표시하므로 차원은 3×5입니다. 정수 데이터 유형 개체는 이 행렬의 데이터를 구성합니다. 첫 번째 행인 Row1에는 (2, 3, 5, 7, 6)의 값이 있고, Row2에는 (3, 2, 6, 7, 2)의 값이 있고, Row3에는 5, 7, 2, 6, 1의 값이 있습니다. 열의 경우 Column1에는 값(2, 3, 5)이 있고 Column2에는 값(3, 2, 7)이 있는 식입니다.
예
[ 0, 0, 1 0, 1, 0 1, 0, 0 ]
3개의 행과 3개의 열로 구성된 행렬을 표시하므로 차원은 3×3입니다. 행과 열이 동일한 행렬을 정사각 행렬이라고 합니다.
마찬가지로 Python을 사용하면 사용자가 m x n 차원 행렬 내에 데이터를 저장할 수 있습니다. 행렬과 같은 구조에서 행렬의 덧셈, 곱셈, 전치 및 기타 연산을 수행할 수 있습니다.
Python에서 행렬 개체를 구현하는 것은 간단하지 않습니다. 배열을 사용하여 Python 행렬을 만들고 유사하게 사용할 수 있습니다.
NumPy 배열
과학 컴퓨팅 소프트웨어 NumPy는 강력한 N차원 배열 개체를 지원합니다. 우리 프로그램에서 NumPy를 사용하려면 NumPy를 설치해야 합니다.
NumPy는 설치 후 사용하고 가져올 수 있습니다. Numpy Array의 기본을 아는 것은 행렬을 이해하는 데 도움이 될 것입니다.
NumPy는 여러 차원의 항목을 갖는 배열을 제공합니다. 다음은 예시입니다.
암호
# Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating a numpy array array = np.array([4, 6, 'Harry']) print(array) print('Data type of array object: ', type(array))
산출:
['4' '6' 'Harry'] Data type of array object:
보시다시피 Numpy 배열은 ndarray 클래스에 속합니다.
Numpy 배열을 사용하여 행렬을 만드는 예
학생들의 성적 기록을 작성하는 시나리오를 생각해 보십시오. Python 프로그래밍과 Matrix 두 과목에 학생의 이름과 성적을 기록하게 됩니다. numpy 배열을 사용하여 2차원 행렬을 만든 다음 모양을 변경해 보겠습니다.
암호
# Python program to create a matrix using numpy array # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) print('The matrix is: ', matrix)
산출:
The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']]
Numpy Matrix 방법을 사용하여 행렬을 만드는 예
numpy.matrix를 사용하여 2D 행렬을 만들 수 있습니다.
초기 무커
암호
# Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating a matrix matrix = np.matrix('3,4;5,6') print(matrix)
산출:
[[3 4] [5 6]]
행렬 값에 액세스
행렬의 인덱스를 사용하여 행렬에 저장된 요소에 액세스할 수 있습니다. 행렬에 저장된 데이터는 2차원 배열에 사용하는 것과 동일한 접근 방식을 사용하여 액세스할 수 있습니다.
암호
# Python program to access elements of a matrix # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) # Accessing record of Itika print( matrix[0] ) # Accessing marks in the matrix subject of Andrew print( 'Andrew's marks in Matrix subject: ', matrix[3][2] )
산출:
['Itika' '89' '91'] Andrew's marks in Matrix subject: 91
2차원 Numpy 배열 또는 행렬을 만드는 방법
2차원 NumPy 배열과 행렬을 만드는 방법에는 여러 가지가 있습니다. 행과 열에 대한 항목 제공
정수, 부동 소수점 또는 복소수를 제공할 수 있습니다. 배열 메소드의 dtype 속성을 사용하면 원하는 데이터 유형을 지정할 수 있습니다.
암호
# Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating numpy arrays array1 = np.array([[4, 2, 7, 3], [2, 8, 5, 2]]) print('Array of data type integers: ', array1) array2 = np.array([[1.5, 2.2, 3.1], [3, 4.4, 2]], dtype = 'float') print('Array of data type float: ', array2) array3 = np.array([[5, 3, 6], [2, 5, 7]], dtype = 'complex') print('Array of data type complex numbers: ', array3)
산출:
Array of data type integers: [[4 2 7 3] [2 8 5 2]] Array of data type float: [[1.5 2.2 3.1] [3. 4.4 2. ]] Array of data type complex numbers: [[5.+0.j 3.+0.j 6.+0.j] [2.+0.j 5.+0.j 7.+0.j]]
0과 1이 있는 배열
암호
# Python program to show how to create a Numpy array having zeroes and ones # Importing numpy import numpy as np # Creating numpy arrays zeores_array = np.zeros( (3, 2) ) print(zeores_array) ones_array = np.ones( (2, 4), dtype=np.int64 ) print(ones_array)
산출:
[[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]]
여기서는 dtype을 64비트로 지정했습니다.
arange() 및 Shape() 메서드 사용
암호
# Python program to show how to create Numpy array using arrange() and shape() methods # Importing numpy import numpy as np # Creating numpy arrays array1 = np.arange( 5 ) print(array1) array2 = np.arange( 6 ).reshape( 2, 3 ) print(array2)
산출:
[0 1 2 3 4] [[0 1 2] [3 4 5]]
Python 매트릭스 작업
파이썬 매트릭스 추가
두 개의 행렬을 추가하고 주어진 행렬을 통해 중첩된 for 루프를 사용합니다.
암호
# Python program to add two matrices without using numpy # Creating matrices in the form of nested lists matrix1 = [[23, 43, 12], [43, 13, 55], [23, 12, 13]] matrix2 = [[4, 2, -1], [5, 4, -34], [0, -4, 3]] matrix3 = [[0,1,0], [1,0,0], [0,0,1]] matrix4 = [[0,0,0], [0,0,0], [0,0,0]] matrices_length = len(matrix1) #Adding the three matrices using nested loops for row in range(len(matrix1)): for column in range(len(matrix2[0])): matrix4[row][column] = matrix1[row][column] + matrix2[row][column] + matrix3[row][column] #Printing the final matrix print('The sum of the matrices is = ', matrix4)
산출:
The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]]
파이썬 행렬 곱셈
Python 행렬 곱셈 연산자
문자열을 int로 변환하는 방법
Python에서는 @를 곱셈 연산자라고 합니다. 이 연산자를 사용하여 두 행렬을 곱하는 예를 살펴보겠습니다.
암호
# Python program to show how to create a matrix using the matrix method. # importing numpy import numpy as np # Creating the matrices matrix1 = np.matrix('3,4;5,6') matrix2 = np.matrix('4,6;8,2') # Usng multiplication operator to multiply two matrices print(matrix1 @ matrix2)
산출:
[[44 26] [68 42]]
Numpy를 사용하지 않는 Python 행렬 곱셈
두 행렬을 곱하는 또 다른 방법은 중첩 루프를 사용하는 것입니다. 여기에 보여줄 예가 있습니다.
암호
# Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating two matrices matrix1 = [[4, 6, 2], [7, 4, 8], [6, 2, 7]] matrix2 = [[4, 6, 8, 2], [6, 5, 3, 7], [7, 3, 7, 6]] # Result will be a 3x4 matrix output = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # Iterating through the rows of matrix1 for i in range(len(matrix1)): # iterating through the columns of matrix2 for j in range(len(matrix2[0])): # iterating through the rows of matrix2 for k in range(len(matrix2)): output[i][j] += matrix1[i][k] * matrix2[k][j] for row in output: print(row)
산출:
[66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68]
파이썬 매트릭스 역
방정식을 만족하는 미지 변수의 값을 얻기 위해 방정식을 풀어야 할 때, 일반 수학에서와 마찬가지로 행렬의 역수인 역행렬이 계산됩니다. 행렬의 역행렬은 원래 행렬과 곱할 때 단위 행렬을 제공하는 행렬입니다. 비특이 행렬만이 역행렬을 가질 수 있습니다. 비특이 행렬은 0이 아닌 행렬식을 갖습니다.
암호
# Python program to show how to calculate the inverse of a matrix # Importing the required library import numpy as np # Creating a matrix A = np.matrix('3, 4, 6; 6, 2, 7; 6, 4, 6') # Calculating the inverse of A print(np.linalg.inv(A))
산출:
알파벳의 숫자
[[-3.33333333e-01 -7.40148683e-17 3.33333333e-01] [ 1.25000000e-01 -3.75000000e-01 3.12500000e-01] [ 2.50000000e-01 2.50000000e-01 -3.75000000e-01]]
Python 행렬 전치
Numpy 없이 Python 행렬 전치
행렬의 전치에는 행과 열의 전환이 포함됩니다. X'라는 기호가 있습니다. 행렬 X의 i행과 j열에 있는 객체를 행렬 X'의 j행과 i열에 배치합니다. 결과적으로 원래 행렬 X가 3x4 행렬이면 X'는 4x3 행렬이 됩니다.
암호
# Python program to find the transpose of a matrix using nested loops # Creating a matrix matrix = [[4, 6, 7, 8], [3, 7, 2, 7], [7, 3, 7, 5]] result = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] # iterating through the rows for i in range(len(matrix)): # iterating through the columns for j in range(len(matrix[0])): result[j][i] = matrix[i][j] for row in result: print(row)
산출:
[4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5]
Numpy를 사용한 Python 행렬 전치
Numpy에서 Matrix.transpose() 메서드를 사용하여 행렬의 전치를 얻을 수 있습니다.
암호
# Python program to find the transpose of a matrix # importing the required module import numpy as np # Creating a matrix using matrix method matrix = np.matrix('[5, 7, 6; 4, 2, 4]') #finding transpose using matrix.transpose method transpose = matrix.transpose() print(transpose)
산출:
[[5 4] [7 2] [6 4]]
Python 매트릭스를 배열로 변환
ravel 및 flatten 함수를 사용하여 Python 행렬을 Python 배열로 변환할 수 있습니다.
암호
# Python program to convert a matrix to an array # importing the required module import numpy as np # Creating a matrix using numpy matrix = np.matrix('[4, 6, 7; 5, 2, 6; 6, 3, 6]') # Using ravel() function to covert matrix to array array = matrix.ravel() print(array) # Using flatten() function to covert matrix to array array = np.asarray(matrix).flatten() print(array) # Using reshape() function to covert matrix to array array = (np.asarray(matrix)).reshape(-1) print(array)
산출:
[[4 6 7 5 2 6 6 3 6]] [4 6 7 5 2 6 6 3 6] [4 6 7 5 2 6 6 3 6]