[파이썬][numpy] numpy에서 선형 대수

Numpy는 파이썬의 과학적 계산을 위한 핵심 라이브러리입니다. 선형 대수(Linear Algebra)는 수학과 과학 분야에서 핵심적인 개념으로써, 벡터, 행렬 및 선형 방정식의 연산을 다루는 데 사용됩니다. 이번 블로그 포스트에서는 Numpy를 사용하여 선형 대수 연산을 어떻게 수행하는지 살펴보겠습니다.

Numpy 배열 생성하기

Numpy를 사용하여 다양한 형태의 배열을 생성할 수 있습니다. Numpy 배열은 np.array() 함수를 사용하여 생성할 수 있습니다.

import numpy as np

# 1차원 배열 생성
arr1 = np.array([1, 2, 3, 4, 5])

# 2차원 배열 생성
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

# 3차원 배열 생성
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

벡터 연산

벡터는 1차원 배열로 표현되며, Numpy를 사용하여 다양한 벡터 연산을 수행할 수 있습니다. 예를 들어, 덧셈, 뺄셈, 곱셈, 나눗셈 연산 등을 수행할 수 있습니다.

import numpy as np

# 벡터 생성
vec1 = np.array([1, 2, 3])
vec2 = np.array([4, 5, 6])

# 덧셈 연산
result = vec1 + vec2
print(result)  # 출력: [5 7 9]

# 뺄셈 연산
result = vec1 - vec2
print(result)  # 출력: [-3 -3 -3]

# 곱셈 연산
result = vec1 * vec2
print(result)  # 출력: [4 10 18]

# 나눗셈 연산
result = vec1 / vec2
print(result)  # 출력: [0.25 0.4  0.5]

행렬 연산

행렬은 2차원 배열로 표현되며, Numpy를 사용하여 다양한 행렬 연산을 수행할 수 있습니다. 예를 들어, 행렬 곱셈, 전치행렬, 역행렬 계산 등을 수행할 수 있습니다.

import numpy as np

# 행렬 생성
mat1 = np.array([[1, 2], [3, 4]])
mat2 = np.array([[5, 6], [7, 8]])

# 행렬 곱셈
result = np.dot(mat1, mat2)
print(result)
# 출력: [[19 22]
#       [43 50]]

# 전치행렬
result = mat1.T
print(result)
# 출력: [[1 3]
#       [2 4]]

# 역행렬 계산
result = np.linalg.inv(mat1)
print(result)
# 출력: [[-2.   1. ]
#       [ 1.5 -0.5]]

선형 방정식 풀기

Numpy는 선형 방정식을 푸는 데도 활용될 수 있습니다. 선형 방정식을 푸는 방법 중 하나는 np.linalg.solve() 함수를 사용하는 것입니다.

import numpy as np

# 선형 방정식 풀기
A = np.array([[2, 3], [5, -6]])
b = np.array([8, -4])

result = np.linalg.solve(A, b)
print(result)  # 출력: [1. -2.]

Numpy를 사용하여 선형 대수를 다루는 방법을 알아보았습니다. Numpy가 제공하는 강력한 기능을 활용하여 선형 대수 연산을 효율적으로 수행할 수 있습니다. Numpy의 문서를 참조하여 다양한 선형 대수 연산을 수행하는 방법을 더 자세히 알아보세요.