🔗Numpy: The Foundation of Data Science and AI
import numpy as np
arr = np.array(List) # -> numpy.ndarray 객체 반환
np.arange(start, end, step) # float 인자도 가능
np.append(arr, item) # np.ndarray 원소 추가, inplace X
# >>>>> 사이즈 관련
arr.itemsize # 한 원소가 차지하는 byte 사이즈
arr.dtype # 자료형
arr.ndim # 차원
arr.size # 원소의 전체 개수
arr.shape # ndarray의 구조, (5,) - 튜플 형식으로 반환
arr.strides # 각 차원에 접근하기 위해 이동해야 하는 byte 크기
# <<<<< 사이즈 관련
# >>>>> 통계량
arr.mean() # 평균
np.average(arr, axis=0, weights=[float...]) # 가중평균 가능
np.median(arr) # 중앙값
arr.var() # 분산
arr.std() # 표준편차
# <<<<< 통계량
import statistics as st
st.mode(arr) # 최빈값은 다른 라이브러리 이용
arr.T # Transpose
arr.argmax() # 가장 큰 요소의 인덱스 반환
arr.argmin() # 가장 작은 요소의 인덱스 반환
arr.flatten() # 1차원으로 변경
arr.astype(type | str) # 자료형 변경
np.zeros(shape: Tuple[int...]) # shape 크기의 0으로 채워진 배열 반환
np.ones(shape: Tuple[int...]) # shape 크기의 1로 채워진 배열 반환
numpy-cheat-sheet
🔗Data Science Duniya
np.randomnp.random 모듈에서 바로 난수를 생성했지만, random.Generator 객체를 생성 후 해당 객체의 메서드를 호출하는 형식으로 변경되었다.import numpy as np
SEED = 42
rng = np.random.default_rng(seed=SEED) # Generator 객체 생성
rng.normal(loc=0, scale=1, size=100) # N(0, 1) 샘플 100개 생성
# 기존 방식
np.random.seed(SEED) # numpy 전역 난수 고정
np.random.normal(loc=0, scale=1, size=100)
💡변경된 방식으로 Generator 객체별 독립된 난수 스트림을 확보할 수 있어, 난수 관리가 더 명확해질 것으로 기대한다.