Loading...
2021. 11. 29. 21:27

Numpy 기초 5편

1. element wise operation numpy는 단순 list와는 다르게 기본적으로 array끼리 사칙연산을 지원함 기본적으로는 *,+,-는 대응하는 원소끼리 연산함 dot product는 일반적인 행렬곱으로 a.dot(b) , a@b transpose는 a.T , a.transpose() 2. broadcasting shape가 다른 배열 간 연산도 지원함 scalar가 matrix의 모든 원소에 대응하여 연산함

2021. 11. 29. 20:57

Numpy 기초 4편

1. operation 기본적인 수학연산 지원 sum,mean,median,var,std 등등 지원 median 지원이 인상적 np.exp(), np.sqrt(), … 등 지수함수와 제곱근도 지원 표준편차는 std()로 구할 수 있고 median같은 경우는 a.median()이 아니라 np.median(a) 식으로 구해야 에러가 안나는듯 2. axis 연산 실행에서 기준이 되는 축 ndarray의 shape가 (a,b,c,d,e,.....)이면 a는 axis=0 b는 axis=1 c는 axis=2, d는 axis=3, e는 axis=4,..... 그림2에서 (3,4) array의 원소 합 sum()을 구한건데 axis=1이 shape에서 4를 나타내니까 원소 4개 있는 방향으로 sum을 함 그림3에서 (..

2021. 11. 28. 20:18

Numpy 기초 3편

1. np.arange(n) np.arange(n)은 0~n-1까지 한 행으로 array 생성 list의 range는 step size에 floating point가 불가능하나 arange()는 가능 보통 reshape와 같이 사용함 arange로 array를 만들고 원하는 shape로 바꾸기 위해 reshape를 사용 2. np.zeros() & np.ones() np.zeros()는 0으로 가득 찬 ndarray np.ones()는 1로 가득찬 ndarray 3. np.empty() np.empty()는 비어있는 ndarray를 생성한다 그런데 일반적으로 배열을 생성할때는 메모리 공간을 싹 비우고(initialization) 잡는데 np.empty는 그냥 메모리 공간을 잡는다. 그래서 잡은 공간에 들..

2021. 11. 27. 21:28

Numpy 기초 2편

1. reshape 원소 개수는 바꾸지 않고 array의 shape를 변경함 원소 개수는 shape의 모든 축의 곱 np.array().reshape() dim에 -1을 포함시키면 그 부분은 파이썬이 데이터 수에 맞게 알아서 잡아준다 2. flatten 다차원 array를 1차원 array로 만들어준다 (2,2,4)의 3차원 array를 (16,)의 1차원 array로 flatten 시킴 원소의 수인 모든 shape의 곱이 16으로 일정해야함 3. indexing 리스트와는 다르게 [a,b]의 직관적인 indexing을 제공함 indexing으로 값 변경도 가능 0행 2열의 원소를 test_exampe[0,2]로 불러올 수 있음 0,0의 원소인 1을 test_example[0,0]=10으로 변경 가능 4..

2021. 11. 27. 00:31

Numpy 기초 1편

1. numpy 고성능 과학 계산용 패키지 matrix나 vector같은 array 연산의 사실상 표준 일반 리스트에 비해 빠르고 효율적 반복문 없이 배열 연산 처리를 지원 c,c++ 등 다른 언어와 통합 가능 import numpy as np 2. array에 대하여 행렬은 일반적으로 이차원 list를 이용하여 표현한다. 예를 들어 [[2,1],[3,2],[3,-1]]은 $$\begin{pmatrix} 2 & 1\\ 3 & 2\\ 3 & -1 \end{pmatrix}$$을 표현한다. 그러나 이렇게 하는 경우 다양한 행렬 계산이 어려워진다. 심지어 매우 큰 matrix에 대해 일일이 list로 표현해줄 것인가? 리스트는 심지어 메모리도 비효율적이다. 각각의 값이 모두 메모리 주소를 가지기 때문 3. ar..