-
[21.02.15] numpy와 친해지기 첫째 날AI/study log 2021. 8. 29. 23:57728x90
numpy와 친해지기
numpy나 pandas와 같은 파이썬 모듈이 거의 기본으로 쓰인다는 것은 이미 잘 알고 있고 그 개념은 엄청 많이 들었는데 막상 쓰려면 매번 예제를 찾아봐야 하는 문제 때문에 이번 개강 전에 바짝하기로 했다! 사실 이번에 듣게 되는 '기계학습' 수업에서 거의 numpy를 빠삭하게 다뤄야 편하다고 해서 딱 7일 컷으로 시작하기로 했다! 그래도 이렇게 html 파일에 내 식으로 정리하는 게 기억에 많이 남기도 하고, 나중에 기억 안 나거나 복습할 때 다시 찾아올 수 있으니 좋다! 더불어 수학 공부도 같이 할 수 있고 연습문제도 같이 섞여있고 정리도 아주 잘 되어있는 질 좋은 사이트를 발견해서 신나게 시작한다. 얏호~!
1. 넘파이 배열
1.1 import numpy as np로 모듈을 불러온다! 기본적인 numpy 배열을 크게 1차원, 2차원, 3차원으로 나누어 접근하도록 하자!
- 1차원 배열=='벡터'
- a=np.array([1,2,3])
- 2차원 배열=='행렬(matrix)' (벡터와 행렬을 일반화하여 '텐서'라고 부른다)
- b=np.array([[1,2,3],[4,5,6]])
- ※행, 열 개수 구하기
len(b) #행의 수
len(b[0]) #열의 수
- 3차원 배열
- c=np.array([[[1,2],[3,4]],[[7,2],[2,7]]])
- ※깊이, 행, 열 개수 구하기
len(c) #깊이
len(c[0]) #행의 수
len(c[0][0]) #열의 수
1.2 배열의 차원과 크기 알아내기
ndim -> 배열의 차원
-np.ndim(b) #2차원이므로 2
shape -> 베열의 형태
-np.shape(b) #2행 3열이기 때문에 (2,3) (행X열X깊이 순이다!)2. 배열의 인덱싱, 슬라이싱
2-1. 배열의 인덱싱 (->크게 1차원 배열과 다차원 배열일 때로 나뉨!)
1차원 배열일 땐, 파이썬의 리스트와 인덱싱 방법이 동일하다. 그러나 다차원 배열(2차원 이상)일 땐 컴마로 구분된 차원, 즉 축(axis)로 인덱싱한다!
-b[1,0] # [행,열] 두번째 행의 첫번째 열※ 배열 인덱싱=팬시 인덱싱 (데이터 베이스의 질의(Query)와 동일한 기능을 한다)
-배열 인덱싱은 대괄호에, 숫자, 슬라이스가 아니라 '위치정보를 나타내는 또 다른 배열'을 받을 수 있다 => 다차원 배열도 가능함!배열 인덱싱은 크게 '불리언 배열 방식'과 '정수 배열 방식' 두 가지로 나뉜다.
- 불리언 배열 방식
- a[a%2==0]
- a[a>1]
- 정수 배열 방식
idx=np.array([0,0,0,0,1,1,1,1])
a[idx] #[1,1,1,1,2,2,2,2] 형태의 배열 반환
2-2. 배열의 슬라이싱
- b[0 , :] #[ 행, 열] 첫번째 행의 전체 열
- b[1 , 1:] #두번째 행의 두번째 열부터 끝 열까지
- b[: , 1] #전체 행의 두번째 열
728x90'AI > study log' 카테고리의 다른 글
[21.03.03] pandas와 친해지기 셋째 날 (0) 2021.08.30 [21.02.28] pandas와 친해지기 둘째 날 (0) 2021.08.30 [21.02.22] pandas와 친해지기 첫째 날 (0) 2021.08.30 [21.02.17] numpy와 친해지기 셋째 날 (0) 2021.08.30 [21.02.16] numpy와 친해지기 둘째 날 (0) 2021.08.29 - 1차원 배열=='벡터'