새소식

AI 개발

[Numpy] 딥러닝을 위한 Numpy3 - 함수 정리

  • -

● Numpy에서 많이 사용하는 주요 기능

 

  1. 벡터 산술연산
  2. 다차원 배열 ndarray
  3. 표준 수학 함수
  4. 선형대수, 난수 생성, 푸리에 변환

 


 

○ 배열 생성 함수

 

함수 내용 
np.array 입력된 데이터를 ndarray로 변환. dtype을 명시하면 자료형을 설정할 수 있다
np.asarray 입력 데이터를 ndarray로 변환하나 이미 ndarray일 경우에는 새로 메모리에 ndarray가 생성되지는 않는다
np.arange  range 함수와 유사하나 ndarray를 반환, 자료형 기본 float64
np.ones  전달인자로 전달한 dtype과 모양(행,렬)으로 배열을 생성하고 모든 내용을 1로 초기화하여 ndarray를 반환
np.zeros  ones와 같으나 초기값이 0이다 
np.empty  ones와 zeros와 비슷하나 값을 초기화하지는 않는다

 


자세한 예시와 데이터 타입 알아보기

2020/03/05 - [SW개발/Framework Library] - [파이썬패키지] 딥러닝을 위한 Numpy1 - Numpy기초

 

[파이썬패키지] 딥러닝을 위한 Numpy1 - Numpy기초

● Numpy란 넘파이(Numpy)는 C로 구현된 고성능의 수치계산을 위해 제작된 파이썬 라이브러리로, 'Numerical Python'의 줄임말입니다. 넘파이는 벡터, 행렬 연산에 있어 많은 기능들을 제공하고 pandas와 matplot..

ebbnflow.tistory.com

 

 


 

 

○ 유니버셜 함수

unfunc라고 불리는 유니버셜 함수는 ndarray안에 있는 데이터 원소 별로 연산을 수행하는 함수입니다. 일종의 래퍼함수로 래퍼함수란, 다른 함수에 약간의 기능을 덧씌워 사용하는 함수를 말합니다.

 

  • 단일 배열에 사용하는 유니버셜 함수

 

 함수 설명 
 abs, fabs 각 원소의 절대값을 구한다. 복소수가 아닌 경우에는 fabs로 빠르게 연산가능 
sqrt   제곱근을 계산 arr ** 0.5와 동일 
square  제곱을 계산 arr ** 2와 동일 
Exp  각 원소에 지수 ex를 계산 
Log, log10, log2, logp  각각 자연로그, 로그10, 로그2, 로그(1+x) 
sign  각 원소의 부호를 계산 
ceil  각 원소의 소수자리 올림 
floor  각 원소의 소수자리 버림 
rint  각 원소의 소수자리 반올림. dtype 유지 
modf  원소의 몫과 나머지를 각각 배열로 반환 
isnan  각 원소가 숫자인지 아닌지 NaN 나타내는 불리언 배열 
isfinite, isinf  배열의 각 원소가 유한한지 무한한지 나타내는 불리언 배열 
cos, cosh, sin, sinh, tan, tanh 일반 삼각함수와 쌍곡삼각 함수 
logical_not  각 원소의 논리 부정(not) 값 계산. -arr와 동일 



 

  • 서로 다른 배열 간에 사용하는 유니버셜 함수

 

 함수 설명
 add 두 배열에서 같은 위치의 원소끼리 덧셈 
subtract  첫번째 배열 원소 - 두번째 배열 원소
multiply  배열의 원소끼리 곱셈 
divide 첫번째 배열의 원소에서 두번째 배열의 원소를 나눗셈 
power  첫번째 배열의 원소에 두번째 배열의 원소만큼 제곱
maximum, fmax 두 원소 중 큰 값을 반환. fmax는 NaN 무시 
minimum, fmin 두 원소 중 작은 값 반환. fmin는 NaN 무시 
mod  첫번째 배열의 원소에 두번째 배열의 원소를 나눈 나머지 
greater, greater_equal, less, less_equal, equal, not_equal  두 원소 간의 >, >=, <, <=, ==, != 비교연산 결과를 불리언 배열로 반환 
logical_and, logical_or, logical_xor  각각 두 원소 간의 논리연산, &, |, ^ 결과를 반환 




 

 

○ 통계 함수

함수 설명 
sum 배열 전체 혹은 특정 축에 대한 모든 원소의 합을 계산 
mean 산술평균 
std, var  표준편차와 분산, 자유도를 줄 수 있음 
min, max  최소값, 최대값 
argmin, argmax  최소원소의 색인 값, 최대원소의 색인 값 
cumsum  각 원소의 누적 합 
cumprod  각 원소의 누적 곱 

 


 

 

○ 집합 함수

함수 설명 
unique(x) 배열 x에서 중복된 원소를 제거한 후 정렬(sorted)하여 반환
intersect1d(x,y) 배열 x와 y에 공통적으로 존재하는 원소를 정렬(sorted)하여 반환
union1d(x,y) 두 배열의 합집합을 반환 
in1d(x,y) x의 원소 중 y의 원소를 포함하는지를 나타내는 불리언 배열을 반환
setdiff1d(x,y)  x와 y의 차집합을 반환
setxor1d(x,y) 한 배열에는 포함되지만 두 배열 모두에는 포함되지 않는 원소들의 집합인 대칭 차집합을 반환

 

 


 

 

○ 배열의 파일 입출력

함수 설명 
np.save(파일명, ndarray) Numpy 배열을 파일로 저장
np.load('파일명.npy') 파일로 저장된 Numpy 배열을 불러오기
np.savetxt, np.loadtxt 파일의 형태를 파이썬 pickle 형태(binary) 로 데이터를 저장하고 불러올 수 있고 확장자는 .npy




 

○ 선형대수

함수 설명 
np.dot(x, y) x,y 내적곱 반환
np.transpose 행과 열의 위치를 바꿈
np.diag 대각행렬 생성
np.eye 대각원소가1이고 나머지는 0인 단위행렬 생성
np.trace 대각합 행렬 반환
np.linalg.det 역행렬이 존재하는지 여부 반환 1이면 존재, 0이면 존재하지 않음
( 역행렬은 n차정방행렬 Amn과의 곱이 항등행렬 또는 단위행렬 In이 되는 n차정방행렬 )
np.linalg.eig 고유값, 고유벡터 두 개의 객체 반환
( 정방행렬 A에 대하여 Ax = λx  (상수 λ) 가 성립하는 0이 아닌 벡터 x가 존재할 때 상수 λ 를 행렬 A의 고유값 (eigenvalue), x 를 이에 대응하는 고유벡터 (eigenvector) )
np.linalg.inv 역행렬 반환 
np.linalg.svd 특이값 분해
특이값 분해는 고유값 분해(eigen decomposition)처럼 행렬을 대각화하는 한 방법 (참고)
np.linalg.solve 연립방정식 해 풀기
np.linalg.lstsq 최소자승 해 풀기

 

 


 

○ 난수 생성

numpy.random 모듈의 함수

함수 설명 
seed 난수 발생기 시드 지정
permutation 순서를 임의로 바꾸고 임의의 순열 반환
rand 균등분포에서 표본 추출
randint 주어진 최소/최대 범위 안에서 임의의 난수 추출
randn 표준편차가 1이고 평균값이 0인 정규분포에서 표본 추출
binomial 이항분포에서 표본 추출
normal 정규분포에서 표본 추출
beta 베타분포에서 표본 추출
chisquare 카이제곱분포에서 표본 추출
gamma 감마분포에서 표본 추출
uniform 균등분포에서 표본 추출

 

 


 

○ 기타

 

  • 불리언 색인

데이터 분석에서 전처리 과정이나 통계 정보를 수집할 때 '불리언 색인'이라는 개념을 많이 사용하게 됩니다.

파이썬의 리스트 중첩과 유사하지만 보다 쉽게 if문을 활용하고 다양한 데이터 가공을 가능하게 해줍니다.

 

1차원 배열인 arr에서 3보다 큰 값을 모두 추출하고, True에 해당하는 index의 array값만 반환 할 수도 있습니다.

 

 

2차원의 Numpy array에 불리언 색인을 적용한 예제 입니다.

비교 연산자 ==를 array에 바로 적용할 때 True, False 값이 각 array 값에 설정되며 이를 불리언 색인으로 사용할 수 있습니다. 

 

 


 

  • 조건절 표현

조건절은 np.where(조건, x, y)를 사용하여 표현할 수 있습니다. 조건이 참이면 x의 원소를 거짓이면 y를 원소로 하는 벡터를 반환합니다.

 


 

  • Concatenate

vstack 수직으로 합치기(axis=1) 열은 고정, 행을 늘림

hstack 수평으로 합치기(axis=0) 행은 고정, 열을 늘림

np.concatenate()

 

합칠때는 차원이 동일해야 합니다.

 


 

  • Sort

- np.sort(arr, axis=1) 좌에서 우로 정렬

- np.sort(arr, axis=0) 위에서 아래로 정렬

- np.sort(arr, axis=0)[::-1] 아래에서 위로 거꾸로 정렬

 

- np.sort(arr) 원래 배열은 그대로, 정렬 결과를 복사본으로 반환

- arr.sort() 배열 자체를 정렬

 


 


Numpy 시리즈

Numpy 기초

2020/03/05 - [SW개발/Framework Library] - [파이썬패키지] 딥러닝을 위한 Numpy1 - Numpy기초

Numpy 행렬 연산

2020/03/10 - [SW개발/Framework Library] - [파이썬패키지] 딥러닝을 위한 Numpy2 - 행렬의 연산

Numpy 함수 총 정리

2020/03/16 - [SW개발/Framework Library] - [파이썬 패키지] 딥러닝을 위한 Numpy3 - Numpy함수 총 정리

 


 

 

 

 

참고한 블로그

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.