Numpy 검색 배열
배열 검색
특정 값에 대한 배열을 검색하고 일치하는 인덱스를 반환할 수 있습니다.
배열을 검색하려면 이 where()
방법을 사용하십시오.
예시
값이 4인 인덱스를 찾습니다.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
위의 예는 튜플을 반환합니다: (array([3, 5, 6],)
이는 값 4가 인덱스 3, 5, 6에 있음을 의미합니다.
예시
값이 짝수인 인덱스를 찾습니다.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 0)
print(x)
예시
값이 홀수인 인덱스를 찾습니다.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 1)
print(x)
정렬된 검색
searchsorted()
배열에서 이진 검색을 수행하고 검색 순서를 유지하기 위해 지정된 값이 삽입될 인덱스를 반환하는 메서드 가 있습니다.
이 searchsorted()
방법은 정렬된 배열에서 사용되는 것으로 가정합니다.
예시
값 7을 삽입해야 하는 인덱스를 찾습니다.
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7)
print(x)
예제 설명: 정렬 순서를 유지하려면 인덱스 1에 숫자 7을 삽입해야 합니다.
이 메서드는 왼쪽에서 검색을 시작하고 숫자 7이 더 이상 다음 값보다 크지 않은 첫 번째 인덱스를 반환합니다.
오른쪽에서 검색
기본적으로 가장 왼쪽 인덱스가 반환되지만 side='right'
대신 가장 오른쪽 인덱스를 반환하도록 줄 수 있습니다.
예시
오른쪽부터 시작하여 값 7을 삽입해야 하는 인덱스를 찾습니다.
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7, side='right')
print(x)
예 설명: 정렬 순서를 유지하려면 인덱스 2에 숫자 7을 삽입해야 합니다.
메서드는 오른쪽에서 검색을 시작하고 숫자 7이 다음 값보다 작지 않은 첫 번째 인덱스를 반환합니다.
여러 값
둘 이상의 값을 검색하려면 지정된 값이 있는 배열을 사용하십시오.
예시
값 2, 4, 6을 삽입해야 하는 인덱스를 찾습니다.
import numpy as np
arr = np.array([1,
3, 5, 7])
x =
np.searchsorted(arr, [2, 4, 6])
print(x)
반환 값은 배열 [1 2 3]
입니다. 순서를 유지하기 위해 원래 배열에 2, 4, 6이 삽입되는 세 개의 인덱스를 포함합니다.