오늘은 넘파이 실습을 진행하였다.
빅데이터 분석기사를 준비하면서 데이터프레임은 많이 다루어 보았는데
넘파이는 잘 사용하지 않았다.
기본적인 문법으로
np_A = np.array(A)
np.shape
A = np.ones(shape = (1,2,3)) // 1 x 2 x 3 모양 1로 채움
A = np.zeros(shape = (1,2,3)) // 1 x 2 x 3 모양 0으로 채움
A = np.random.randn(1,2,3) // 1 x 2 x 3 모양 랜덤
A = np.random.normal(loc=1.56,scale=0.67,size=(1,2))
//loc = 평균, scale = 표준편차 , size = 모양
A = np.random.randint(10,21,size=(1,2)) // 10~20 임의의 정수
arr[1,2]=0 // 1, 2 에 위치한 값 0으로 변경
사칙연산의 경우 np 변수 끼리 그대로 계산해주면 되었다.
A.dot(B)
여기서 이해하는데 시간이 걸렸다.
np의 (2, 3) 에서 (5, 7) 까지 값을 0으로 바꿀려면
arr[2:6, 3:8] = 0 이라고 해줘야 하는데
앞의 2:6은 (2, 3)의 2와 (5, 7)의 5(+1) 이다.
뒤의 3:8은 (2, 3)의 3과 (5, 7)의 7(+1) 이다.
(x1, y1) 에서 (x2, y2) 까지라고 가정을 하면
arr[x1:x2+1, y1:y2+1] = 0
이렇게 해야 하는 것이다.
np 조건문의 경우 데이터프레임과 구조가 유사하여 이해하기 쉬웠다.
arr 에서 10보다 크고 20보다 작거나 같은 arr을 출력하고 싶으면 다음과 같이 했다.
arr[(arr>10)&(arr<=20)]
데이터프레임과 같은 방식으로 진행되었다.
실습 문제들의 경우 평소하던 코딩테스트에 넘파이가 더해진 문제들로 구성되었다.
별 어려움 없이 구현이 가능했다.