English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 내장 목록과 NumPy 패키지를 사용하여 Python 행렬을 배우겠습니다.
행렬은 숫자가 행과 열에 따라 정렬된 두차원 데이터 구조입니다. 예를 들어:
이 행렬은3x4("세 곱 네")행렬, 그러나 그것이3행4열.
Python은 행렬의 내장 타입이 없습니다. 그러나 목록의 목록을 행렬로 볼 수 있습니다. 예를 들어:
A = [[1, 4, 5], [-5, 8, 9]]
이 목록의 목록을 행렬로 볼 수 있습니다.2행3행렬의 열.
이 문서를 계속하기 전에 꼭 이해해야 할 내용이 있습니다.Python 목록。
嵌套列表의 사용법을 보겠습니다.
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[1], A[1]) # 두 번째 행 print("A[1][2], A[1][2]) # 두 번째 행의 세 번째 요소 print("A[0][-1] =", A[0][-1]) # 첫 번째 행의 마지막 요소 column = []; # 공란 list for row in A: column.append(row[2]) print("3rd column = "column"}
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A[1] = [-5, 8, 9, 0] A[1][2]= 9 A[0][-1]= 12 3rd column = [5, 9, 11]
Python의 둥근 목록을 사용한 행렬과 관련된 몇 가지 예제가 있습니다.
둥근 목록을 사용하여 행렬을 사용할 수 있지만,NumPyPython에서는 패키지를 사용하여 행렬을 처리하는 것이 더 나은 방법입니다.
NumPy는 과학 계산을 위한 소프트웨어 패키지로, 강력한 N차원 배열 객체를 지원합니다. NumPy를 사용하기 전에 설치해야 합니다. 더 많은 정보는,
이동하세요:NumPy를 어떻게 설치할 수 있습니까?
Windows를 사용하는 경우, Python을 다운로드하고 설치하세요Anaconda 배포판. NumPy와 데이터 과학 및 머신러닝과 관련된 다른 소프트웨어 패키지가 포함됩니다.
NumPy를 설치한 후에는 그를 임포트하고 사용할 수 있습니다.
NumPy는 여러 차원 배열을 제공합니다(실제로는 객체입니다). 예를 들어:
import numpy as np a = np.array([1, 2, 3]) print(a) # 출력: [1, 2, 3] print(type(a)) # 출력: <class 'numpy.ndarray'>
과 같이 NumPy의 배열 클래스는 ndarray라고 합니다.
NumPy 배열을 생성하는 방법이 몇 가지 있습니다.
import numpy as np A = np.array([1, 2, 3], [3, 4, 5]] print(A) A = np.array([1.1, 2, 3], [3, 4, 5]) # 실수 배열 print(A) A = np.array([1, 2, 3], [3, 4, 5], dtype = complex) # 복수 배열 print(A)
프로그램을 실행할 때, 출력은 다음과 같습니다:
[[1 2 3] [3 4 5]] [[1.1 2. 3. ]] [3. 4. 5. ]] [[1.+0.j 2.+0.j 3.+0.j] [3.+0.j 4.+0.j 5.+0.j]]
import numpy as np zeors_array = np.zeros((2, 3) ) print(zeors_array) ''' 출력: [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones((1, 5), dtype=np.int32 // dtype print(ones_array) # 출력: [[1 1 1 1 1]]
여기서, dtype를 지정했습니다32비트4바이트). 따라서, 이 배열은 특정 범위의 값을 사용할 수 있습니다.-2-312-31-1
import numpy as np 4 print('A = B = np.arange(12).reshape(2, 6 print('B = ''' 출력: A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] '''
에 대해 알아보세요NumPy 배열을 생성하는 방법다른 메서드에 대한 더 많은 정보를 제공했습니다.
위에서, 우리는3예제: 두 행렬의 덧셈, 두 행렬의 곱셈 및 행렬 전치. 이 프로그램을 작성하기 전에는 내장 목록을 사용했습니다. NumPy 배열을 사용하여 동일한 작업을 수행하는 방법을 보겠습니다.
우리는 다음을 사용합니다+연산자는 두 NumPy 행렬의 대응 요소를 더합니다.
import numpy as np A = np.array([2, 4], [5, -6]] B = np.array([9, -3], [3, 6]] C = A + B # 요소의 지혜로운 추가 print(C) ''' 출력: [[11 1] [ 8 0]] '''
두 행렬을 곱하기 위해 dot() 메서드를 사용합니다. 두 행렬 곱셈에 대한 정보를 이해하십시오.numpy.dot작동 방식에 대한 더 많은 정보
주의: *수组分할(두 수组的 대응 요소의 곱)에 사용되며, 행렬 곱셈이 아닙니다.
import numpy as np A = np.array([3, 6, 7], [5, -3, 0]]) B = np.array([1, 1], [2, 1], [3, -3]] C = A.dot(B) print(C) ''' 출력: [[ 36 -12] [ -1 2]] '''
우리는 다음을 사용합니다numpy.transpose행렬의 전치 계산
import numpy as np A = np.array([1, 1], [2, 1], [3, -3]] print(A.transpose()) ''' 출력: [[ 1 2 3] [ 1 1 -3]] '''
처음 보셨듯, NumPy는 작업을 더 쉽게 만듭니다.
리스트와 유사하게, 행렬 요소에 인덱싱을 사용하여 접근할 수 있습니다. 일차원 NumPy 배열부터 시작해 보겠습니다.
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # 첫 번째 요소 print("A[2], A[2]) # 세 번째 요소 print("A[-1], A[-1]) # 마지막 요소
프로그램을 실행할 때, 출력은 다음과 같습니다:
A[0] = 2 A[2]= 6 A[-1]= 10
이제, 두차원 배열(기본적으로 행렬)의 요소에 접근하는 방법을 보겠습니다.
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] # 첫 번째 행의 첫 번째 요소 print("A[0][0] =", A[0][0]) # 두 번째 행의 세 번째 요소 print("A[1][2], A[1][2]) # 마지막 행의 마지막 요소 print("A[-1][-1], A[-1][-1])
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
A[0][0] = 1 A[1][2]= 9 A[-1][-1]= 19
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[0] =", A[0]) # 첫 번째 행 print("A[2], A[2]) # 세 번째 행 print("A[-1], A[-1]) # 마지막 행 (3rd row in this case)
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
A[0] = [1, 4, 5, 12] A[2] = [-6, 7, 11, 19] A[-1] = [-6, 7, 11, 19]
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[:,0] =", A[:,0]) # 첫 번째 열 print("A[:,3], A[:,3]) # 네 번째 열 print("A[:,-1], A[:,-1]) # 마지막 열(4th 열
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
A[:,0] = [ 1 -5 -6] A[:,3] = [12 0 19] A[:,-1] = [12 0 19]
위 코드가 어떻게 작동하는지 모르면, 이 문서의 행렬 부분의 슬라이싱을 읽어보세요.
일维 NumPy 배열의 슬라이싱은 리스트와 유사합니다. 리스트 슬라이싱의 작동 방식을 알지 못하면, 다음을 방문하세요파이썬의 슬라이싱 기호 이해하기。
예를 들어:
import numpy as np letters = np.array([1, 3, 5, 7, 9, 7, 5]) # 3rd부터 5th요소 print(letters[2:5]) # 출력: [5, 7, 9] # 1st부터 4th요소 print(letters[:-5]) # 출력: [1, 3] # 6th부터 마지막 요소까지 print(letters[5:]) # 출력:[7, 5] # 1st부터 마지막 요소까지 print(letters[:]) # 출력:[1, 3, 5, 7, 9, 7, 5] # 목록을 뒤집기 print(letters[::-1)] # 출력:[5, 7, 9, 7, 5, 3, 1]
이제, 행렬을 캔버스하는 방법을 보여드리겠습니다.
import numpy as np A = np.array([1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]] print(A[:2, :4)] # 두 행, 네 열 '''출력: [[ 1 4 5 12] [-5 8 9 0]] ''' print(A[:1,]) # 첫 번째 행, 모든 열 '''출력: [[ 1 4 5 12 14]] ''' print(A[:,2)] # 모든 행, 두 번째 열 '''출력: [ 5 9 11] ''' print(A[:, 2:5)] # 모든 행, 세 번째부터 다섯 번째 열 '''출력: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
그러나 볼 수 있듯이 NumPy(또는 중첩된 리스트 대신)를 사용하면 행렬을 더 쉽게 처리할 수 있으며, 기본적인 지식에 대해 다루지 않았습니다. 데이터 과학에서 Python을 사용하려는 경우 NumPy 소프트웨어 패키지를 자세히 연구하는 것을 추천합니다./분석 시.