> 백엔드 개발 > 파이썬 튜토리얼 > NumPy의 `meshgrid` 기능은 어떻게 배열 값의 모든 조합을 효율적으로 생성할 수 있습니까?

NumPy의 `meshgrid` 기능은 어떻게 배열 값의 모든 조합을 효율적으로 생성할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-21 01:24:09
원래의
216명이 탐색했습니다.

How Can NumPy's `meshgrid` Function Efficiently Generate All Combinations of Array Values?

효율적인 배열 조합을 위해 NumPy 활용

6개 매개변수 함수의 수치적 동작을 조사하려면 해당 매개변수 공간을 탐색하는 효율적인 방법을 모색합니다. 처음에는 배열 값을 결합하기 위해 사용자 정의 함수를 사용한 다음, 이를 반복적으로 적용하기 위해 줄이기()를 사용했습니다. 이 접근 방식은 기능적이지만 번거롭습니다.

NumPy를 사용한 효율적인 솔루션

NumPy의 최신 버전(1.8.x 이상)은 훨씬 뛰어난 솔루션인 numpy.meshgrid()를 제공합니다. 이 함수를 사용하면 입력 배열의 가능한 모든 조합으로 구성된 다차원 배열을 생성할 수 있습니다. 귀하의 경우:

import numpy as np

a = np.arange(0, 1, 0.1)
combinations = np.array(np.meshgrid(a, a, a, a, a, a)).T.reshape(-1, 6)
로그인 후 복사

다음 벤치마크에서 알 수 있듯이 이 접근 방식은 성능을 크게 향상시킵니다.

%timeit np.array(np.meshgrid(a, a, a, a, a, a)).T.reshape(-1, 6)

# Output: 10000 loops, best of 3: 74.1 µs per loop
로그인 후 복사

또는 최대 제어를 위해 다음 사용자 정의 기능을 사용할 수 있습니다.

def cartesian(arrays):
    arr = np.empty((len(arrays.shape), len(arrays)))
    for n, array in enumerate(arrays):
        arr[n, :] = array
    return arr.T.reshape(-1, len(arrays))

%timeit cartesian([a, a, a, a, a, a])

# Output: 1000 loops, best of 3: 135 µs per loop
로그인 후 복사

위 내용은 NumPy의 `meshgrid` 기능은 어떻게 배열 값의 모든 조합을 효율적으로 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿