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이 삽입되는 세 개의 인덱스를 포함합니다.


연습으로 자신을 테스트하십시오

연습:

올바른 NumPy 메서드를 사용하여 값이 4인 모든 항목을 찾습니다.

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.(arr == 4)