본문 바로가기
IT/Data Analysis with python

넘파이 기본: 배열과 백터연산 02

by Cyber_ 2024. 5. 17.

3. 유니버설 함수: 배열의 각 원소를 빠르게 처리하는 함수

  • ufunc라고도 부르는 유니버설 함수는 ndarray안의 데이터 원소별로 연산을 수행하는 함수

  • 단항 유니버셜 함수

    • abs, fabs: 절대값 구하기, 복소수가 아닌 경우 빠른 연산을 위해 fabs 사용
    • sqrt: 제곱근
    • square: 제곱
    • exp: 지수 ex를 계산
    • log, log10, log2, log1p: 로그
    • sign: 부호를 계산(1=양수,0,-1=음수)
    • ceil: 올림
    • floor: 내림
    • rint: 반올림
    • modf: 몫과 나머지를 배열로 반환
    • isnan: 숫자인지 아닌지 불리언 배열 반환
    • isfinite, isint: 유한수인지, 무한수인지 반환
    • cos, cosh, sin, sinh, tan, tanh: 일반 삼각함수와 쌍곡선삼각함수
    • acrros, arccosh, arcsin: 역삼각함수
    • arcsinh, arctan, arctanh: 역삼각함수
    • logical_not: 논리 부정값을 계산
  • 이항 유니버설 함수

    • add: 두 배열에서 같은 위치의 원소끼리 더한다.
    • subtract: 첫 번째 배열의 원소에서 두 번째 배열의 원소를 뺀다.
    • multipy: 배열의 원소끼리 곱한다.
    • divide, floor_divide: 나눈다. floor_divde는 몫만 취한다.
    • power: 첫 번째 배열의 원소를 두 번째 배열의 원소만큼 제곱한다.
    • maximum, fmax: 두 원소중 큰 값 반환 ,famx는 Nan을 무시
    • minimum, fmin: 두 원소중 작은 값 반환
    • mod: 나눈 나머지
    • copysign: 첫 번째 배열의 원소를 두번쨰 배열의 원소의 기호로 바꾼다.
    • greater, greater_equal, less: 각 원소의 비교 연선 결과를 불리언으로 배열
    • less_equal, equal, not_equal: 각 원소의 비교 연선 결과를 불리언으로 배열
    • logical_and: AND 논리 연산결과를 반환
    • logical_or: OR 논리 연산 결과를 반환
    • logical_xor: XOR 논리 연산결과를 반환

4. 배열을 이용한 배열 기반 프로그래밍

1) 배열 연산으로 조건부 표현하기

  • numpy.where: x if 조건 else 같은 삼항식의 백터화 버전
    np.where(arr > 0, 2, arr) # 양수인 경우에만 값을 2로 변경

2) 수학 메서드와 통계 메서드

  • sum(), mean(), std()
  • mean이나 sum 같은 핫무는 axis 인수를 받아 axis에 대한 통계를 계산하고 한 차수 낮은 결과를 반환
  • cumsum(), cumprod(): 중간 계산값을 담고 있는 배열을 반환

3) 불리언 배열을 위한 메서드

(arr > 0).sum()
bools = np.array([False, False, True, False])
bools.any() # True
bools.all() # False

4) 정렬

  • sort(): 정렬된 복사본으로 반환

5) 집합 관련 함수

  • unique(x): 중복 제거 후, 정렬
  • intersect1d(x, y): 교집합 정렬
  • union1d(x, y): 합집합
  • in1d(x, y): x의 원소가 y의 원소에 포함되는지 나타내는 불리언 배열 반환
  • setdiff1d(x, y): 차집합 반환
  • setxor1d(x, y): 대칭 차집합을 반환

5. 배열 데이터의 파일 입출력

  • numpy.save(): 기본적으로 압축되지 않은 원시 바이너리 형싱의 .npy파일로 저장
  • numpy.load(): 불러오기

6. 선형대수

  • diag: 정사각 행렬의 대각/비대각 원소를 1차원 배열로 반환하거나, 1차원 배열을 대각원소로하고 나머지는 0으로 채운 단위 행렬을 반환
  • dot: 행렬 곱셈
  • trace: 행렬의 대각선 원소의 합을 계산
  • det: 행렬식을 계산한다.
  • eig: 정사각 행렬의 고윳값과 고유백터를 계산
  • inv: 정사각 행렬의 역행렬을 계싼
  • pinv: 정사각 행렬의 무어-펜로즈 유사역행렬을 구한다.
  • qr: QR 분해를 계싼한다.
  • svd: svd 특잇값 분해(SVD)를 계산한다.
  • solve: A가 정사각 행렬일 떄 Ax = b 를 만족하는 x를 구한다.
  • lstsq: Ax = b를 만족하는 최소제곱해를 구한다.