>  기사  >  백엔드 개발  >  NumPy 배열에서 임계값을 초과하는 요소를 효율적으로 교체하는 방법은 무엇입니까?

NumPy 배열에서 임계값을 초과하는 요소를 효율적으로 교체하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-25 18:20:03228검색

How to Efficiently Replace Elements Exceeding a Threshold in NumPy Arrays?

NumPy 배열에서 임계값을 초과하는 요소 교체

이미지 처리 및 데이터 조작 영역에서는 특정 요소를 수정해야 하는 경우가 종종 발생합니다. 다차원 배열 내에서. 그러한 작업 중 하나는 미리 정의된 임계값을 초과하는 모든 값을 새 값으로 바꾸는 것입니다. 다음 질문은 이 요구 사항을 해결합니다.

"2D NumPy 배열이 있습니다. 임계값 T = 255보다 큰 배열의 모든 값을 x = 255 값으로 어떻게 바꾸나요?"

이 문제에 대한 간단한 해결책은 배열 요소를 반복하고, 각 요소를 임계값과 비교하고, 이를 초과하는 요소를 업데이트하는 것입니다. 이 방법은 기능적이지만 중첩 루프로 인해 대규모 배열의 경우 속도가 느려질 수 있습니다.

NumPy의 Fancy 인덱싱이 더 효율적인 접근 방식을 제공합니다. 이 방법은 부울 조건을 기반으로 요소를 수정하는 간결한 방법을 제공합니다. 팬시 인덱싱을 활용하면 다음과 같이 255보다 큰 요소를 255로 바꿀 수 있습니다.

<code class="python">arr[arr > 255] = x</code>

이 작업은 배열 요소와 255 사이의 요소별 비교를 수행합니다. 그런 다음 결과 부울 배열을 사용하여 선택하고 배열의 해당 요소를 업데이트합니다. 할당 연산자는 선택한 요소를 지정된 값으로 대체합니다.

벤치마크는 기존 for-loop 방법에 비해 Fancy 인덱싱이 우수함을 나타냅니다. 임의의 500x500 행렬에서 팬시 인덱싱을 사용하여 0.5보다 큰 값을 5로 바꾸는 데 루프당 약 7.59밀리초가 걸립니다. 이러한 신속한 성능으로 인해 이러한 작업에 선호되는 선택이 되었습니다.

위 내용은 NumPy 배열에서 임계값을 초과하는 요소를 효율적으로 교체하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.