문제:
2차원 NumPy 배열에서 임계값(예: T = 255)보다 큰 값을 특정 값(예: x = 255)으로 바꾸려고 합니다. 기존 접근 방식에는 시간이 많이 걸리는 for 루프가 포함됩니다.
해결책:
NumPy는 명시적인 루프가 필요 없는 간결하고 효율적인 솔루션을 제공합니다. Fancy 인덱싱을 활용하면 교체 작업을 쉽게 수행할 수 있습니다.
<code class="python">arr[arr > 255] = x</code>
이 한 줄의 코드는 조건(> 255)을 충족하는 배열의 모든 요소를 지정된 값(x)으로 바꿉니다.
성능:
타이밍 측정에서 알 수 있듯이 Fancy 인덱싱 접근 방식은 for-loop 방법보다 훨씬 빠릅니다. 500 x 500 무작위 행렬의 경우 팬시 인덱싱을 사용하여 0.5보다 큰 값을 5로 바꾸는 데 평균 7.59밀리초가 걸립니다.
<code class="python">import numpy as np A = np.random.rand(500, 500) %timeit A[A > 0.5] = 5</code>
장점:
위 내용은 NumPy 배열에서 높은 가치의 요소를 효율적으로 교체하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!