3주차 넘파이 실습

정강훈·2021년 12월 21일
0

오늘은 넘파이 실습을 진행하였다.
빅데이터 분석기사를 준비하면서 데이터프레임은 많이 다루어 보았는데
넘파이는 잘 사용하지 않았다.

기본적인 문법으로

배열을 np로 변경

np_A = np.array(A)

np 모양 출력

np.shape

0, 1으로 이루어진 np 생성

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으로 채움

랜덤으로 np 생성

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 임의의 정수

np 값 변경

arr[1,2]=0 // 1, 2 에 위치한 값 0으로 변경

np 사칙연산

사칙연산의 경우 np 변수 끼리 그대로 계산해주면 되었다.

np 행렬 연산

A.dot(B)

2차원 배열 슬라이싱

여기서 이해하는데 시간이 걸렸다.
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 조건문

np 조건문의 경우 데이터프레임과 구조가 유사하여 이해하기 쉬웠다.
arr 에서 10보다 크고 20보다 작거나 같은 arr을 출력하고 싶으면 다음과 같이 했다.
arr[(arr>10)&(arr<=20)]
데이터프레임과 같은 방식으로 진행되었다.

실습 문제들의 경우 평소하던 코딩테스트에 넘파이가 더해진 문제들로 구성되었다.

별 어려움 없이 구현이 가능했다.

0개의 댓글