[머신러닝] Python 선형대수학 numpy 사용

2020. 7. 4. 14:18머신러닝

Tuple & List

: 배열 또는 벡터를 표현하는 2가지 대표적인 방법

  - 리스트 선언 -> 결정되지 않은 featured 데이터에 사용

  - Tuple은 수정할 수 없음 

 

Numpy Package

: 배열 간의 계산이나 제곱근과 같은 기능을 가능하게 만드는 함수 패키지

  - 인덱싱 & 슬라이싱 (시작 또는 종료값을 생략할 수 있음)

  - arange()

  - zeros() & ones()

  - linspace() & logspace()

  - r_[va, vb] & c_[va, vb]

  - reshape() : 배열의 행과열을 새로 바꾸어주는 역할

  - random.rand() : [0,1] 사이의 균일한 분포

  - random.seed()

  - random.randint() : 주어진 구간에서 랜덤한 정수값

 

선형대수학 Python

import numpy as np

A=[[2, 3], [4, 5]]
B=[[2, 3], [4, 5]]
ANP=np.array(A)
BNP=np.array(B)
print(ANP)
ANP_transpose=ANP.T
print(ANP_transpose)

# 1) np.dot(x, y) : 행렬의 내적
print("1) np.dot(x, y) : 행렬의 내적")
C=np.dot(ANP, BNP)
print(C)
D1=np.dot(ANP_transpose, BNP)
print(D1)
D2=ANP.T.dot(BNP)
print(D2)
print("\n")

# 2) np.diag : 대각행렬
print("2) np.diag : 대각행렬")
DiagonalA=np.diag(A)
DiagonalB=np.diag(B)
print(DiagonalA)
print(DiagonalB)
print(np.diag(ANP_transpose))
print(np.diag(C))
print(np.diag(D1))
print(np.diag(D2))
print("\n")

# 3) np.trace : 대각합
print("3) np.trace : 대각합")
traceA=np.trace(A)
traceB=np.trace(B)
print(traceA)
print(traceB)
print(np.trace(C))
print(np.trace(D1))
print(np.trace(D2))
print("\n")

# 4) np.linalg.det : 행렬식
print("4) np.linalg.det : 행렬식")
detA=np.linalg.det(A)
detB=np.linalg.det(B)
print(detA)
print(detB)
print(np.linalg.det(C))
print(np.linalg.det(D1))
print(np.linalg.det(D2))
print("\n")

# 5) np.linalg.inv : 역행렬
print("5) np.linalg.inv : 역행렬")
invA=np.linalg.inv(A)
invB=np.linalg.inv(B)
print(invA)
print(invB)
print(np.linalg.inv(C))
print(np.linalg.inv(D1))
print(np.linalg.inv(D2))
print("\n")

# 6) np.linalg.svd : 특이값 분해
print("6) np.linalg.svd : 특이값 분해")
b=[[0, 0], [0, 0]]
E=A+b
arrayE=np.array(E)
print(arrayE)
u, s, vh=np.linalg.svd(arrayE)
print(u)
print(s)
print(vh)
print("\n")

# 7) np.linalg.solve : 연립방정식 해 풀기
print("7) np.linalg.solve : 엽립방정식 해 풀기")
F=np.array([5, 7])
X=np.linalg.solve(ANP, F)
print(X)

va=np.array([1,2,3])
vb=np.array([4,5,6])
print(va)
xr=np.r_[va, vb]
xc=np.c_[va,vb]
print(xr)
print(xc)