NumPy 유니버설 함수
NumPy 유니버설 함수 (ufunc)
유니버설 함수(ufunc)는 NumPy 배열 요소별로 적용되는 함수예요. 덧셈·곱셈 같은 산술 연산부터 삼각함수, 지수·로그, 비교 연산까지 폭넓게 제공되며, 벡터화라서 파이썬 반복문보다 빠르게 동작해요.
산술 연산 유니버설 함수
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 조합으로 한 번에 표현하면 명시적 반복 없이 빠르게 계산돼요.