numpy 는 배열 연산을 아주 빠르게 할 수 있는 라이브러리이다.
cf.Pandas는?
->dataframe으로 데이터 조작. 전처리가 편하고 csv, 엑셀, 등의 데이터를 불러들이기 쉽다.
데이터 결측치를 처리하고 집계를 내보는데 좋다.
numpy : 다차원 배열 계산 / pandas : 데이터불러와서 처리하고 집계
ndarry 자료구조 형태arr = np.array(list) ndarry :: 연산하기 쉬운 array.
→ 1. 크기가 고정
데이터타입 하나
연산시 편리 (ndarry 원소끼리 연산가능함)
사용하는 함수
cf.
정규분포 : 평균과 분산만으로 특성을 설명할 수 있다.
표준정규분포 평균 0 표준편차 1→ 정규분포를 z-score로 선형변환, 표준화한 분포
균등분포 : 모든 확률변수에 대해 균일한 확률을 갖는 것.
ex) 주사위 던지기
→ (2,3)만큼 랜덤한 숫자들이 출력된다.
→ 정규분포 랜덤 만들기
#정수 랜덤 배열 만들기
np.random.randint(10,100,size=5)
>array([22, 88, 28, 51, 38])
#np.random.uniform -> 균등 분포
np.random.uniform(1.0,3.0, size=(4,5))
>
array([[2.96009826, 2.12135072, 1.70493583, 1.22503396, 2.55245921],
[2.81717702, 2.90302249, 1.46511255, 2.57936546, 1.73500019],
[2.48698504, 1.62567422, 1.5776091 , 1.34054276, 2.81681459],
[2.85990453, 1.52543373, 1.77811203, 2.89437086, 1.15689608]])
np.random.choice(10, size=(2,3)) #0~9사이에 (2,3)뽑기
>
array([[8, 2, 1],
[3, 7, 6]])
array([1,2,3,4,5]) ? array ([[1],[2],[3],[4],[5]])
같은 벡터라고 해도
다른 배열로 해야 됨
💡대부분 열벡터로 취급하기 때문에 2차원 배열 이상부터 취급함
np.random.randint(10,100, size=5)
array([23, 28, 64, 55, 18])행벡터처럼보이지만 열벡터로 판단이 됨.
arr = np.arange(1,17).reshape(-1,4,4)
arr
array([[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]]])
array([5,6,7,8])
=> arr[0][1]
7
=> arr[0,1,2]
arr[:]
array([[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]]])
array([[ 9, 10, 11, 12]])
=> arr[:,2]