모듈(module)이라고도 불리며, 함수, 변수들을 모아놓은 공간
파이썬에서 기본으로 제공하는 L/B
개발자가 필요에 의해 개발한 패키지와 모듈의 집합
Numerical Python의 약자
데이터의 숫자계산을 간편하게 해주는 라이브러리
파이썬의 자료형인 list형태와 비슷하지만, 동일한 자료형을 담는다
반복문 없이 각 데이터의 연산이 가능하다
각 값들마다 index번호를 부여받는다
ndarray라고 불리는 Numpy배열을 생성할 수 있다.
array배열은 배열끼리의 연산이 가능하다.
인덱스 번호가 같은 요소끼리 연산됨. 단, 배열의 크기가 같아야 한다.
list자료형은 값의 자료형에 상관없이 모두 담을 수 있지만,
Numpy배열 array는 동일한 자료형만 담을 수 있다
import numpy as np
// 관념적으로 np로 별칭을 설정한다.
np.array(리스트값)
// 리스트를 다중 구조로 만들면 그만큼 N차원 배열이 생성된다.
배열명.shape
배열명.size
배열명.ndim
배열명.dtype
np.zeros(배열의 크기)
// 배열의 크기는 튜플 자료형으로 작성한다
np.ones(배열의 크기)
// 배열의 크기는 튜플 자료형으로 작성한다
np.full((배열의 크기), 특정 값)
// 배열의 크기는 튜플 자료형으로 작성한다
// np.arange(시작값, 끝값(포함x), 증감값)
// range() 함수와 동일하게 작성한다
np.arange(1, 101, 4)
// 1부터 100까지 4씩 증가하는 배열 생성
// np.random.randint(시작, 끝, size=(배열크기))
np.random.randint(1, 46, size=(2,3))
// 1부터 45 사이의 값 중 무작위로 뽑아서 2행 3열의 2차원 배열 생성하기
// 배열명.astype('데이터타입')
arr.astype('int')
// 배열의 데이터 타입 int로 변경
arr_a = np.array([1,2,3])
arr_b = np.array([4,5,6])
arr_a + arr_b
// 실행 시 [5,7,9] 로 출력된다.
원래있던 배열을 새로운 차원의 배열로 재배치할 때 사용한다
기존의 인덱스 값을 정확하게 맞춘 구조로 지정해야 사용할 수 있다.
arr_20 = np.arange(1, 51, 1)
// arr_20은 1부터 50까지 증가하는 값을 가진 1차원 배열이다
arr_20.reshape(5,10)
// 5행 10열을 가진 2차원 배열로 재배치한다.
arr_20.reshape(10,-1)
// 10행 ?열을 가진 2차원 배열로 자동 재배치한다.
list의 인덱싱과 마찬가지로 대괄호 []를 사용하며, 사용 방식도 동일하다
행과 열을 지정할 때는 대괄호[] 안에 쉼표 ,를 기준으로 행,열로 구분한다.
arr_2 = np.array([[1,2,3],
[4,5,6]])
// arr_2에서 정수 2 가져오기
arr_2[0,1]
arr_20[[2,3],[1,2]]
// 2차원 배열 arr_20에서 22와 33을 동시에 가져오기
연속되지 않는 값을 인덱싱 할 때는 list자료형을 활용해 가져올 값의 행과 열을 지시한다.
앞쪽에는 가져올 값들의 행값을 순서대로 지시하고, 뒤쪽에는 그 순서에 맞는 열값을 지시한다.
필터링의 기능을 담당
조건에 해당하는(True) 값들만 출력할 때 사용
조건에 해당하는 값이 존재하는지 모를 때 사용
arr_20[arr_20 > 5]
// arr_20의 인덱스 값 중에서 5보다 큰 값들만 인덱싱하기
인덱싱과 같은 방식을 사용한다.
arr_10 = np.arange(0, 11, 1)
// arr_10은 0부터 10까지 증가하는 값을 가진 배열이다
// 2부터 5까지 슬라이싱하기
arr_10[2:6]
// 3부터 끝까지 슬라이싱하기
arr_10[3:]