Numpy 란?
- 다차원의 숫자 배열을 Python에서 효율적으로 처리 할 수 있도록 만들어진 라이브러리
- 배열에 대한 처리에 특화된 라이브러리
- 리스트나 튜플은 중첩이 가능하여 다차원 배열을 표현할 수도 있음
- 대규모 처리에 리스트나 튜플을 사용하면 처리속도가 느림
- 배열 연산이 빠름. 빠른 이유는 다차원 배열 객체인 NDARRAY를 기본 데이터 저장 포맷으로 사용하고 있기 때문
ndarray 란?
- 다차원 배열 객체
- ndarray 는 저장하고 있는 ‘데이터’와 ‘메타데이터’라 불리는 부가 정보로 구성
- 데이터를 시스템상의 메모리에 빈틈없이 배치하여 속도가 빠름
- 모든 배열은 shape 튜플, dtype 객체를 가짐
ndarray 생성 함수
- array : 입력 데이터를 ndarray 타입으로 변환
- asarray : 입력 데이터를 ndarray로 변환하지만 입력 데이터가 이미 ndarray인 경우 복사가 되지 않음
- arange : 내장 range 함수와 유사하지만 리스트 대신 ndarray를 반환
- ones, ones_like : 주어진 dtype과 주어진 모양을 가지는 배열을 생성하고 내용을 모두 1로 초기화 함 ones_like는 주어진 배열과 동일한 모양과 dtype을 가지는 배열을 새로 생성하여 내용을 모두 1로 초기화 함.
- zero, zero_like : ones, ones_like 와 동일하고 내용을 모두 0으로 초기화 함
- empty, empty_like : 메모리를 할당하여 새로운 배열을 생성하지만 ones나 zeros 처럼 값을 초기화 하지는 않음
*eye, identity : N * N 크기의 단위 행렬을 생성. 좌상단에서 우하단을 잇는 대각선은 1로 채워지고 나머지는 0으로 채움
Numpy 함수
- dot : 행렬의 내적을 구함
- sort : 정렬 함수
arr = np.random.randn(8)
arr.sort()
np.where(condition, 2, 3)
ndarray slicing
- [:] : 배열 전체
- [0:1] : 0번째부터 1번째까지, 1번은 미포함
- [:5] : 0번째부터 5번째까지, 5번 미포함
- [2:] : 2번째부터 끝까지
- [-1] : 제일 끝에 있는 배열값 반환
- [:-1] : 0번째부터 끝까지
유니버셜 함수
- 배열의 모든 요서에 대해 요소마다 특정한 함수를 적용하여 리턴하는 기능.
array 1개에 적용되는 함수
- abs : 절대값 계산
- sqrt : 제곱근 계산
- square : 제곱 계산
- exp : 무리수 e의 지수로 삼은 값을 계산
- log : 자연로그
- sign : 부호 계산(+ : 1, – : -1, 0 : 0)
- ceil : 소수 첫 번째 자리에서 올림
- floor : 소수 첫 번째 자리에서 내림
- isnan : NaN 인 경우 True
- isinf : 무한대인 경우 True
- cos, cosh, sin, sinh, tan, tanh : 삼각함수 계산
array 2개에 적용되는 함수
- add : 동일한 위치의 성분끼리 더함
- subtract : 동일한 위치의 성분끼리 뺌
- multiply : 동일한 위치의 성분끼리 곱함
- divide : 동일한 위치의 성분끼리 나눔
- maximum : 동일한 위치의 성분끼리 비교 하여 각각의 최대값 반환
- minimum : 동일한 위치의 성분끼리 비교 하여 각각의 최소값 반환
array 에 적용되는 통계 함수
- sum : 배열에 대한 모든 원소의 합
- mean : 산술평균
- std : 표준 편차
- var : 분산
배열 집합 연산
- unique(x) : 배열 x 에서 중복된 원소를 제거한 후 정렬
- intersect1d(x,y) 배열의 교집합
- union1d(x,y) : 배열의 합집합
- in1d(x,y) : x의 원소중 y의 원소를 포함하는지여부 (boolean 반환)
- setdiff1d(x,y) : 배열의 차집합
- setxor1d(x,y) : 대칭 차집합
난수 생성
- seed : 난수 발생기 시드를 지정
- permutation ; 순서를 임의로 변경하거나 임의의 순열 반환
- shuffle : 순서 섞음
- rand : 균등분포에서 표본을 추출
- randn : 표준편차가 2이고 평균값이 0인 정규분호 에서 표본을 추출