NumPy ufuncs

ufunc이란 무엇인가요?

ufunc은 '통용 함수'(Universal Functions)를 의미하며, ndarray 객체에 대한 NumPy 함수입니다.

ufunc을 사용하는 이유는 무엇인가요?

NumPy에서 벡터화를 구현하는 ufunc은 요소 반복보다 훨씬 빠르다.

그들은 줄이기, 누적 등과 같은 다른 방법을 제공하며, 계산에 매우 유용합니다.

ufunc는 다른 매개변수도 받을 수 있습니다. 예를 들어:

where 불리한 값을 가진 배열이나 조건, 작업을 수행할 위치를 정의합니다.

dtype 요소의 반환 타입을 정의합니다.

out 값이 복사되어야 할 출력 배열입니다.

벡터화는 무엇인가요?

반복 문을 벡터화된 작업으로 변환하는 것을 벡터화라고 합니다.

현대 CPU는 이러한 작업을 최적화했기 때문에 더 빠르게 합니다.

두 개의 리스트의 요소를 더합니다:

리스트 1: [1, 2, 3, 4]

리스트 2: [4, 5, 6, 7]

한 가지 방법은 두 개의 리스트를 순회하면서 각 요소를 더하는 것입니다.

예제

ufunc가 없다면, Python의 내장 zip() 메서드:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
  z.append(i + j)
print(z)

실행 예제

이에 대해 NumPy는 ufunc로 이름을 add(x, y)그럼에도 불구하고, 동일한 결과를 출력합니다.

예제

ufunc를 통해 사용할 수 있습니다. add() 기능:

import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)

실행 예제