[머신러닝을 위한 파이썬] Linear algebra

2024. 12. 22. 16:46MOOC

Python을 활용한 벡터 및 행렬 계산 정리


1. Vector 계산

  • 여러 벡터의 합 계산.
u = [2, 2]
v = [2, 3]
z = [3, 5]

# 벡터의 합
result = [sum(t) for t in zip(u, v, z)]
print(result)  # [7, 10]
 

2. Scalar-Vector Product (스칼라와 벡터 곱)

  • 스칼라 값을 벡터 각 요소에 곱하기.
u = [1, 2, 3]
v = [4, 5, 6]
alpha = 2

# 스칼라와 벡터 곱
result = [alpha * x for x in u]
print(result)  # [2, 4, 6]

3. Matrix Addition (행렬 덧셈)

  • 두 행렬의 같은 위치의 요소를 더함.
matrix_a = [[3, 6], [4, 5]]
matrix_b = [[5, 8], [3, 7]]

# 행렬 덧셈
result = [[sum(row) for row in zip(*t)] for t in zip(matrix_a, matrix_b)]
print(result)  # [[8, 14], [7, 12]]

4. Scalar-Matrix Product (스칼라와 행렬 곱)

  • 스칼라 값을 행렬의 각 요소에 곱하기.
matrix_a = [[3, 6], [4, 5]]
alpha = 4

# 스칼라와 행렬 곱
result = [[alpha * element for element in row] for row in matrix_a]
print(result)  # [[12, 24], [16, 20]]

5. Matrix Transpose (행렬 전치)

  • 행렬의 행과 열을 교환.
matrix_a = [[1, 2, 3], [4, 5, 6]]

# 행렬 전치
result = [[element for element in row] for row in zip(*matrix_a)]
print(result)  # [[1, 4], [2, 5], [3, 6]]

6. Matrix Product (행렬 곱셈)

  • 두 행렬의 곱 계산.
matrix_a = [[1, 1, 2], [2, 1, 1]]
matrix_b = [[1, 1], [2, 1], [1, 3]]

# 행렬 곱셈
result = [[sum(a * b for a, b in zip(row_a, column_b)) 
           for column_b in zip(*matrix_b)] 
          for row_a in matrix_a]
print(result)  # [[7, 9], [5, 8]]