본문 바로가기
함수 설명/기본 및 범용

[NumPy] 함수 벡터화하여 배열 처리하기: np.vectorize()

by First Adventure 2024. 10. 4.
반응형

소개

  np.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None) 함수는 주어진 파이썬 함수 pyfunc를 배열에 대해 요소별로 작동하도록 벡터화하는 데 사용됩니다. 이 함수는 파이썬의 반복적인 작업을 배열 차원에서 효율적으로 처리할 수 있도록 도와줍니다. 이를 통해 일반적인 파이썬 함수를 다차원 배열에도 적용할 수 있습니다.

 

기본 사용법

import numpy as np

# 일반 파이썬 함수 정의
def my_func(x):
    return x ** 2

# 함수를 벡터화
vectorized_func = np.vectorize(my_func)

# 배열에 벡터화된 함수 적용
array = np.array([1, 2, 3, 4])
result = vectorized_func(array)

print("벡터화된 함수 결과:", result)

상세 설명

  • pyfunc: 벡터화할 파이썬 함수입니다. 이 함수는 입력 배열의 각 요소에 대해 적용됩니다.
    • 예시: np.vectorize(lambda x: x**2)는 배열의 각 요소를 제곱하는 함수로 벡터화됩니다.
  • otypes (선택사항): 출력 배열의 데이터 타입을 지정합니다. 기본적으로 입력 데이터 타입을 따릅니다.
    • 예시: np.vectorize(func, otypes=[float])은 결과 배열이 float형으로 반환됩니다.
  • doc (선택사항): 벡터화된 함수의 설명서를 지정할 수 있습니다.
  • excluded (선택사항): 벡터화하지 않을 인자를 지정합니다. 예를 들어, 고정된 값이나 특정 변수는 제외할 수 있습니다.
  • cache (선택사항): 이전 입력에 대한 계산 결과를 캐시하여 성능을 향상시킬 수 있습니다.
  • signature (선택사항): 입력 데이터와 출력 데이터의 차원과 구조를 명확히 지정할 수 있게 해줍니다.
    • 예시: '(n)->()'는 1차원 배열을 입력받아 스칼라 값을 출력하는 함수를 정의하는 방식입니다.
  • 활용
    • 파이썬 함수의 배열 처리: 반복문 없이 배열의 각 요소에 대해 파이썬 함수를 적용할 수 있어 간편하고 효율적인 배열 처리를 지원합니다.
    • 과학적 계산 및 시뮬레이션: 수학적 함수나 데이터를 반복적으로 처리할 때 유용합니다.

 

라이센스

  NumPy는 BSD-3-Clause 라이센스를 따릅니다. 자유롭게 사용, 수정, 배포할 수 있으며 상업적 목적으로도 사용할 수 있습니다. 라이센스와 저작권 정보는 NumPy의 공식 GitHub 리포지토리에서 확인할 수 있습니다.

 

관련 내용

  [NumPy] 함수 벡터화하여 배열 처리하기: np.vectorize() 사용 및 설명

  [NumPy] 텍스트 파일 데이터를 배열로 로드하기: np.genfromtxt() 사용 및 설명

  [NumPy] 저장된 배열 불러오기: np.load() 사용 및 설명

  [NumPy] 배열을 파일로 저장하기: np.save() 사용 및 설명

반응형