부스트코스의 "머신러닝을 위한 파이썬" 강좌 필기 내용
https://www.boostcourse.org/ai222/lecture/253408/?isDesc=false
## 벡터의 계산
'''
# [2,2] + [2,3] + [3,5] = [7,10]를 계산할 때
# 이런 코드는 쓰면 안 됨 = 파이썬 답지 못하고 아름답지 않음
u = [2,2]
v = [2,3]
z = [3,5]
result=[]
for i in range(len(u)):
result.append([u[i] + v[i] + z[i]])
print(result)
'''
from re import X
u = [2,2]
v = [2,3]
z = [3,5]
result = [sum(t) for t in zip(u,v,z)] # zip을 사용해서 같은 인덱스 값을 한번에 뽑아줘서
# print(result)
# [7, 10]
u = [1, 2, 3]
v = [4, 4, 4]
alpha = 2
# 앞에와 똑같은 코드에서 앞에 알파값만 곱해줌
result = [alpha*sum(t) for t in zip(u,v)] #2([1,2,3] +[4,4,4])
# print(result)
# [10, 12, 14]
# Matrix Representation of python
'''
C = A + B = [ 3 6 ] + [ 5 8 ] = [ 8 14 ]
4 5 6 7 10 12
'''
matrix_a = [[3,6], [4,5]]
matrix_b = [[5,8], [6,7]]
result = [[sum(row) for row in zip(*t)] for t in zip (matrix_a, matrix_b)] # 매트릭스를 집으로 묶어서 덧셈을 해주는 방식
# zip으로 처음 묶이는 값 = [3,6]과 [5,8] = ( [3,6], [5,8] )
# *를 사용해서 이 튜플이 풀리면서 각각의 변수로 풀리게 됨
# [3, 6] [5, 8]로 풀리게 된 것이 다시 zip으로 묶으면 => 3, 5가 sum이 되어 나오고, 6,8이 sum => [3+6 6+8]
# 다시 처음으로 matrix 묶는 것 => [4,5] [6,7]이 묶임
# print(result)
# [[8, 14], [10, 12]]
alpha = 4
# 상수 곱의 경우
result = [[alpha * element for element in t] for t in matrix_a]
# print(result)
# [[12, 24], [16, 20]]
matrix_a = [[1,2,3], [4,5,6]]
# A = [ 1 2 3 ] AT(역행렬) = [ 1 4 ]
# 4 5 6 2 5
# 3 6
# 역행렬 구하기
result = [ [ element for element in t] for t in zip(*matrix_a)]
# 매트릭스에 별표를 해주어서 unpacking이 되어 두개의 변수로 쪼개지게 됨 1 2 3
# 4 5 6
# t에 1, 4가 들어감
# 각각 element = [ 1, 4 ]
### 행렬 곱
matrix_a = [[1, 1, 2], [2, 1, 1]]
matrix_b = [[1,1], [2,1], [1,3]]
# C = A X B = | 1 1 1 | | 1 1 |
# | 2 1 1 | X | 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]
# 첫번째 매트릭스에서 row 값 가져오고 두번째에서 컬럼 값 가져옴
# row_a에 처음 [1,2,3]이 들어가게 되고
# 두번째 matrix_b를 unpacking하고 zip으로 묶어주니 [1 2 3 ]
# zip으로 묶어줘서 같은 위치끼리 곱셈이 가능하게 됨 => 각각 곱해준다음에 sum으로 더해줌
# 이 과정에서 포인트 = 컬럼 값을 가져올 때 *로 풀어주고 다시 집으로 묶어주어 column 값을 가져올 수 있음
반응형
'Programming > Python' 카테고리의 다른 글
파이썬 넘파이 numpy 기초 문법 (0) | 2022.10.14 |
---|---|
파이썬 저장 경로 아주 쉽게 확인하는 법 (0) | 2022.10.14 |
파이썬 내장 모듈로만 벡터 연산 실습 (0) | 2022.10.14 |
파이썬에서 자료구조(data structure)를 간단하게 다루도록 도와주는 모듈 (1) | 2022.10.14 |
파이쏘닉 Pythonic 코드 쓰는 법 (0) | 2022.10.14 |