Python으로 데이터 다루기 I - numpy
모듈 불러오기
import numpy as nmp
벡터와 스칼라 사이 연산
벡터의 각 원소에 대해서 스칼라 각각 연산.
x = np.array([1,2,3])
c = 5
x+c
> [6,7,8]
벡터와 벡터 사이 연산
같은 idx의 원소끼리 연산.
y = np.array([1,3,5])
z = np.array([2,9,20])
y+z
> [3,12,25]
y*z
> [2,27,100]
Numpy Array Indexing
x[i, j]로 인덱싱.
x = np.arange(9)
x.reshape((3,3))
x
> [[0,1,2],[3,4,5],[6,7,8]]
x[1,1]
> 4
Example : Linear Algebra with Numpy
#영벡터
np.zeros((3,3))
> [[0,0,0],[0,0,0],[0,0,0]]
#일벡터
np.ones((3,3))
> [[1,1,1],[1,1,1],[1,1,1]]
#대각행렬
np.diag([1,2,5])
> [[1,0,0],[0,2,0],[0,0,5]]
#항등행렬
np.eye(3, dtype=int)
> [[1,0,0],[0,1,0],[0,0,1]]
#행렬곱
X @ Y
X.dot(Y)
#트레이스 : sum(elements of main_diagonal)
x = np.arange(1, 10)
x.reshape((3,3))
x
> [[1,2,3],[4,5,6],[7,8,9]]
np.trace(x)
> 15
#행렬식 : determint
np.linalg.det(x)
> 0
#역행렬
y = np.array([[1,4],[2,3]])
y_inv = np.linalg.inv(y)
y_inv
> [[-0.6,0.8],[0.4,-0.2]]
y @ y_inv # 항등행렬에 매우 근사한 값이 return됨.
#고유값
z = np.array([[2,0,-2],[1,1,-2],[0,0,1]])
eig_val, eig_vec = np.linalg.eig(z)
eig_val
> (1,2,1)
eig_vec
> ([[0,0.7071,0.8944],[1,0.7071,0],[0,0,0.4472]])
z @ eig_vec[:, 0]
> (0,1,0)
eig_val[0] * eig_vec[:, 0]
> (0,1,0)
numpy 재밌게 하다, 선형대수 만나서 좌절..
행렬식, 고유값, 고유벡터를 공부해야 한다..
Author And Source
이 문제에 관하여(Python으로 데이터 다루기 I - numpy), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hughqlee/Python으로-데이터-다루기-I-numpy저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)