NumPy 유니버설 함수

NumPy 유니버설 함수 (ufunc)

유니버설 함수(ufunc)는 NumPy 배열 요소별로 적용되는 함수예요. 덧셈·곱셈 같은 산술 연산부터 삼각함수, 지수·로그, 비교 연산까지 폭넓게 제공되며, 벡터화라서 파이썬 반복문보다 빠르게 동작해요.

출처: https://numpy.org/doc/stable/reference/ufuncs.html

산술 연산 유니버설 함수

add, subtract, multiply, divide 등은 연산자(+, -, *, /)와 대응돼요.

import numpy as np

a = np.array([1, 2, 3])
b = np.array([10, 20, 30])

print(np.add(a, b))      # [11 22 33]
print(np.multiply(a, 2)) # [2 4 6]

수학·통계 유니버설 함수

exp, log, sqrt, sin 같은 함수와 함께, 집계 함수도 유니버설 함수로 제공돼요.

print(np.exp(a))      # 지수
print(np.sqrt(a))     # 제곱근
print(np.sum(a))      # 합
print(np.mean(a))     # 평균

axis 인자로 어느 축을 기준으로 집계할지 정할 수 있어요. 예를 들어 2차원 배열에서 axis=0은 열 방향, axis=1은 행 방향 집계예요.

x = np.array([[1, 2], [3, 4]])
print(np.sum(x, axis=0))   # [4 6]
print(np.sum(x, axis=1))   # [3 7]

브로드캐스팅과 결합

유니버설 함수는 브로드캐스팅 규칙을 따르므로, 다른 모양의 배열에도 적용할 수 있어요. 복잡한 수식을 ufunc 조합으로 한 번에 표현하면 명시적 반복 없이 빠르게 계산돼요.

더 알아보기