Numpy
- Numpy (Numerical Python)
- 파이썬의 고성능 과학 계산용 패키지
- matrix, vector 등 array 연산의 표준
- list에 비해 빠르고 메모리 효율적
- 반복문 없이 배열 처리 지원
- dynamic typing을 포기함으로써 comprehension 이상의 연산 속도를 얻음.
- ndarray
- np.array([1,4,5,8], dtype = np.float32)
- ndarray 객체
- 하나의 데이터 타입만 배열에 넣을 수 있음
- dynamic typing not supported
- scalar, vector, matrix, n-tensor
- indexing, slicing
- array[0][2], array[0,2]
- array[:, 2:]
- arange
- np.arange(start, end, step)
- python과 달리 float 도 가능
- eye
- np.eye(3, k=1, dtype=int)
- 시작 index 설정 가능 (k=0 일때, np.identity 와 같음)
- diag
- np.diag(mat, k=0)
- 대각성분 추출
- 시작 index 설정 가능 (k=2)
- random sampling
- np.random.uniform()
- np.random.normal()
- np.random.exponential()
- operation functions
- .sum() , .mean() , .std(), .var()
- np.sqrt(arr) , np.exp(arr) …
- axis : operation functions 실행 시 기준이 되는 dimension 축
- concatenate((a,b), axis=0)
- np.vstack (행을 붙였다.) , np.hstack (열을 붙였다.)
- np.newaxis
- operations b/w arrays
- element-wise (same shape)
- dot product
- boradcasting (different shape)
- all & any
- np.where
# where(condition, TRUE, FALSE)
a = np.array([1,3,0])
np.where(a > 0, 3, 2) # array([3, 3, 2])
# np.where(condition) : index 값 반환
a = np.arange(10)
np.where(a>5) # array([6, 7, 8, 9])
# Not a Number
a = np.array([1, np.NaN, np.InF], float)
np.isnan(a) # array([False, True, False], dtype=bool)
# Is Finite Number
np.isfinite(a) # array([True, False, False], dtype=bool)
- argmax, argmin
- array 내 최대(최소)값의 index 반환
a = np.array([1,2,3,5,7,30])
np.argmax(a), np.argmin(a)
# (5, 0)
a = np.array([[1,2,4,7], [9,88,6,45], [9,76,3,4]]
np.argmax(a, axis=1), np.argmin(a, axis=0)
# array([3, 1, 1]) , array([0, 0, 2, 2])
- fancy index data i/o
a = np.loadtxt('./xxx.txt', delimiter="\t")
a_int = a.astype(int)
np.savetxt('xxx.csv', a_int, fmt="%.2e", delimiter=",")
# numpy를 object로 변환해서, 저장해서 쓸 수 있다.
np.save('test_object', a_int) # pickle 형태로 저장한다.
a_test = np.load(file="test_object.npy")
'TIL' 카테고리의 다른 글
[Pytorch] 부트캠 day-9 (1) | 2023.11.15 |
---|---|
[Pytorch] 부트캠 day-8 (1) | 2023.11.14 |
[Pandas1] 부트캠 day-5 (0) | 2023.11.10 |
[베이즈 정리] 부트캠 d-4 (0) | 2023.11.09 |
[Vector & Matrix] 부트캠 day-3 (0) | 2023.11.09 |