HOWTO · NumPy
NumPy 대체 값
Python에서 NumPy 배열 내부의 값을 대체하는 데 사용할 수있는 세 가지 주요 메서드, numpy.clip() 함수, numpy.minimum() 함수 및 인덱싱 메서드가 있습니다.
이 페이지의 내용
NumPy 배열의 값을 바꾸려면 numpy.clip()을 사용하거나 numpy.minimum()과 numpy.maximum()을 함께 사용해 두 경계 사이로 값을 제한할 수 있습니다. “5보다 큰 모든 값을 바꾸기”처럼 조건에 따라 처리하려면 불리언 인덱싱과 대입을 사용하세요. 앞의 두 방법은 결과 배열을 만들고 입력 배열은 그대로 둡니다. 인덱싱을 통한 대입은 원본 배열을 변경합니다.
numpy.clip() 함수로 NumPy 값 바꾸기
모든 값을 하한과 상한 사이에 두려면 numpy.clip()을 사용하세요. 하한보다 작은 값은 하한으로 바뀌고, 상한보다 큰 값은 상한으로 바뀝니다. out 인수를 지정하지 않으면 이 함수는 제한된 결과 배열을 반환하고 입력 배열은 그대로 둡니다. 다음 예제를 실행해 보세요.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 9])
result = np.clip(array, 0, 5)
print(result)
출력:
[1 2 3 4 5 5 5 5 5 5 5 5]
여기서 0은 하한이고 5는 상한입니다. 두 경계 사이에 이미 있는 값은 그대로 유지되고, 더 큰 값은 5로 제한됩니다. 반환값을 result에 할당하면 나중에 계산할 때 원래 array를 계속 사용할 수 있습니다.
numpy.minimum() 및 numpy.maximum() 함수로 NumPy 값 바꾸기
numpy.minimum()과 numpy.maximum()을 사용해 같은 두 경계를 적용할 수도 있습니다. 먼저 numpy.minimum()은 배열의 각 값과 5 중 작은 값을 선택해 상한을 적용합니다. 그런 다음 numpy.maximum()은 각 중간 결과와 0 중 큰 값을 선택해 하한을 적용합니다. 두 연산 모두 배열을 반환하므로 이 순서도 array를 변경하지 않습니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 9])
result1 = np.minimum(array, 5)
result2 = np.maximum(result1, 0)
print(result2)
출력:
[1 2 3 4 5 5 5 5 5 5 5 5]
두 경계를 모두 적용할 때는 순서가 중요합니다. 먼저 큰 값을 상한으로 제한한 다음 하한보다 작은 값을 끌어올리세요. 필요한 상한과 하한에 맞춰 5와 0을 바꾸면 됩니다. 한쪽 경계만 필요하다면 해당 함수만 사용하세요. 상한을 적용할 때는 numpy.minimum(), 하한을 적용할 때는 numpy.maximum()을 사용합니다.
Python에서 배열 인덱싱으로 NumPy 값 바꾸기
조건에 따라 값을 바꾸려면 불리언 마스크로 해당 요소를 선택하고, 선택한 위치에 대체 값을 대입하세요. 값이 특정 임계값보다 큰 경우처럼 단순히 두 경계로 제한할 수 없는 규칙에 유용합니다. 이 대입은 원본 배열에 적용되므로 원본을 보존해야 한다면 먼저 복사본을 만드세요.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 9])
array[array > 5] = 5
print(array)
출력:
[1 2 3 4 5 5 5 5 5 5 5 5]
array > 5 표현식은 5보다 큰 각 값에 대해 참인 불리언 마스크를 만듭니다. 이 마스크로 인덱싱하면 해당 요소가 선택되고, 5를 대입하면 그 위치의 값이 원본 배열에서 바로 바뀝니다. 임계값보다 작은 값을 바꾸려면 비교 연산자를 <로 바꾸세요. 범위나 다른 조건을 지정하려면 불리언 비교식을 & 또는 |로 결합하고 각 비교식에 괄호를 씌우면 됩니다.