-
데이터 사이언스: numpy 기본사용법과 인덱싱(Indexing) 공부하기!데이터 사이언스 2020. 7. 18. 04:13
numpy란?
numpy는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록
지원을 해주는 파이썬의 라이브러리이다.
< numpy의 기본사용법 >
import numpy as np np_array = np.array([1, 2, 3, 4, 5, 6]) np_array
array([1, 2, 3, 4, 5, 6])
numpy를 사용하기 위해서 import numpy as np를 해줍니다. 주로 numpy를 매번 쓰기 힘드니까
편하게 np라고 선언해줍니다.
(국룰입니다)np_array.shape = (2, 3) np_array
array([[1, 2, 3], [4, 5, 6]])
(2, 3)의 크기로 행렬을 재배치해서 나타냅니다.
np_array.shape = (m,n)이라 할 때, np_array의 크기와 m x n의 크기가 같아야 합니다.
np_array.size
6
np_array의 사이즈 즉, 크기를 나타냅니다.
np_array2 = np.full(6, 7) np_array2
array([7, 7, 7, 7, 7, 7])
np.full(m, n)일 때, 크기가 m이고 n으로만 이루어진 리스트를 만들어 줍니다.
np_array3 = np.zeros(6, dtype = int) np_array3
array([0, 0, 0, 0, 0, 0])
np.zeros(m, dtype = int) 일 때 크기가 m이고 0으로만 이루어진 리스트를 만듭니다.
np_array4 = np.ones(4, dtype = int) np_array4
array([1, 1, 1, 1])
위와 마찬가지로
np.ones(m, dtype = int) 일 때 크기가 m이고 1으로만 이루어진 리스트를 만듭니다.
np_array5 = np.random.random(6) np_array5
array([0.92219348, 0.77824744, 0.79948808, 0.41958343, 0.26219689, 0.45082113])
np.random.random(n) 라 할 때, 크기가 n이고 랜덤한 값들로 이루어진 리스트를 리턴합니다.
여기서 랜덤한 값은 0이상 1미만의 소수를 가져옵니다.
np.random.randint(2, 10, size = (3, 4))
array([[5, 5, 6, 6], [6, 2, 8, 9], [4, 5, 4, 7]])
만약 랜덤한 정수 값을 가져오고 싶다면 randint를 이용합니다.
np.random.randint(m, n, size = (x, y)) 라고 할때,
크기 (x, y), m이상 n미만의 랜덤한 정수를 갖는 튜플을 리턴합니다.
np.arange()는 사실상 np.array(range())를 단순화해서 쓴겁니다. 쉽게 말하면 정수형 어디서부터 어디까지의 배열입니다.
그래서 range() 함수와 같은 형태를 갖고 arange(시작, 끝, 몇칸씩 건너뛸지) 의 형태를 따릅니다.
np_array6 = np.arange(6) np_array6
array([0, 1, 2, 3, 4, 5])
0 부터 5까지의 리스트 값을 갖습니다.
np_array7 = np.arange(3, 10) np_array7
array([3, 4, 5, 6, 7, 8, 9])
3부터 9까지의 리스트 값을 갖습니다.
np_array8= np.arange(4, 20, 3) np_array8
array([ 4, 7, 10, 13, 16, 19])
4부터 19까지 3씩 건너뛰면서 리스트 값을 갖습니다.
< numpy 리스트 인덱싱 >
import numpy as np np_array = np.array([2, 3, 4, 5, 10, 22, 33, 44, 52, 142]) np_array[2]
4
np_array[-2]
52
파이썬의 기본 리스트 인덱싱처럼 음수 값 또한 인덱싱 해줄 수 있습니다.
np_array2 = np.array([2, 3, 5]) np_array[np_array2]
array([ 4, 5, 22])
numpy는 리스트 인덱싱 값을 리스트를 받아올 수 있습니다.
파이썬 기존의 리스트 슬라이싱과 같아서 다음과 같은 형태를 따릅니다
array[시작: 끝: 몇칸씩 건너뛸지]
np_array[2:]
array([ 4, 5, 10, 22, 33, 44, 52, 142])
두번째 인덱스부터 끝까지
np_array[:5]
array([ 2, 3, 4, 5, 10])
0번째 인덱스부터 4번째 인덱스까지
np_array[:6: 2]
array([ 2, 4, 10])
0번째 인덱스 부터 5번째 인덱스까지 2칸씩 건너뜁니다.
즉, 0번째, 2번째, 4번째 인덱스 값을 가진 리스트를 나타냅니다.
반응형'데이터 사이언스' 카테고리의 다른 글
데이터 사이언스: Pandas 잘못된 데이터 고치기 (rename, set_index) (0) 2020.07.25 데이터 사이언스: Pandas 데이터(csv파일) 받아오기, 인덱싱(Indexing), 데이터 변형 공부하기! (0) 2020.07.24 데이터 사이언스: Pandas 시리즈(Series)와 데이터 프레임(Data Frame) 공부하기! (0) 2020.07.21 데이터 사이언스: numpy 연산과 통계 값들 구하기(표준편차, 분산, 평균, 중앙값...) (0) 2020.07.18 데이터 사이언스: Jupyter Notebook! 알아두면 유용한 기본단축키와 Markdown 활용법! (0) 2020.07.14