본문 바로가기
파이썬/파이썬기본문법

파이썬 numpy ufuncs

by flycoding 2024. 1. 2.
반응형

파이썬 numpy ufuncs 란 무엇인가?

ufuncs는 "Universal Functions"의 약자이며 ndarray 객체에서 작동하는 NumPy 함수이다.

 

파이썬 numpy ufuncs를 왜 사용할까?

ufuncts는 요소에 대한 반복보다 훨씬 빠른 NumPy에서 벡터화를 구현하는 데 사용된다.

그들은 또한 계산에 매우 도움이 되는 브로드캐스트와 축소, 누적 등의 추가적인 방법을 제공한다.

ufuncs는 다음과 같은 추가 인수도 사용한다:
where - 여기서 부울 배열 또는 작업이 수행되어야 하는 위치를 정의하는 조건.
dtype -  요소의 반환 유형을 정의합니다.
out - 반환 값을 복사해야 하는 output array.

 

벡터화 란?

반복문을 벡터 기반 연산으로 변환하는 것을 벡터화라고 한다.
최신 CPU는 이러한 작업에 최적화되어 있기 때문에 더욱 빠르다.

 

두 리스트에 요소 추가

list 1: [1, 2, 3, 4]
list 2: [4, 5, 6, 7]

 

한 가지 방법은 두 리스트를 모두 반복한 다음 각 요소를 합산하는 것이다.

ufunc가 없어도 Python의 내장 zip() 메서드를 사용할 수 있다:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []

print('x : ',x)
print('y : ',y)

print('zip(x,y)')

for i, j in zip(x, y):
  z.append(i + j)
print(z)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy zip() 두 리스트 합치기 활용 예제

 

 

NumPy에는 이에 대한 add(x, y)라는 ufunc에 있으며 이는 동일한 결과를 생성한다.

import numpy as np

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []

print('x : ',x)
print('y : ',y)

print('np.add(x,y)')

z = np.add(x, y)

print('z : ', z)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy ufuncs add() 함수 활용 예제

 

이번 글에서는 파이썬 numpy 모듈에 ufuncs의 add() 함수를 활용하여 두 리스트의 합을 간략히 하는 방법에 대해서 살펴보았다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글