파이썬 numpy 배열 검색
배열에서 특정 값을 검색하고 일치하는 인덱스를 반환할 수 있다.
배열을 검색하려면 where() 메서드를 사용한다.
값이 4인 인덱스 찾기:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 4, 4]) print("arr : ", arr) x = np.where(arr == 4) print('x = np.where(arr == 4) : ', x) |
위의 예는 튜플을 반환합니다: (array([3, 5, 6]),)
즉, 인덱스 3, 5, 6에 값 4가 있음을 의미합니다.
위의 코드를 실행하면 아래 그림과 같다.
값이 짝수인 인덱스 찾기:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 4, 4]) print("arr : ", arr) x = np.where(arr%2 == 0) print('x = np.where(arr%2 == 0) : ', x) |
위의 코드를 실행하면 아래 그림과 같다.
값이 홀수인 인덱스 찾기:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 4, 4]) print("arr : ", arr) x = np.where(arr%2 == 1) print('x = np.where(arr%2 == 1) : ', x) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 numpy 배열 정렬된 검색
배열에서 이진 검색을 수행하고 검색 순서를 유지하기 위해 지정된 값이 삽입될 인덱스를 반환하는 searchsortrated() 메소드가 있다.
searchsorted() 메서드는 sorted 배열에서 사용되는 것으로 가정된다.
값 7을 삽입해야 하는 인덱스 찾기:
import numpy as np arr = np.array([6, 7, 8, 9]) print("arr : ", arr) x = np.searchsorted(arr, 7) print('x = np.searchsorted(arr, 7) : ', x) |
위의 코드를 실행하면 아래 그림과 같다.
예제 설명: 정렬 순서를 유지하려면 인덱스 1에 숫자 7을 삽입해야 한다.
메소드는 왼쪽부터 검색을 시작하고 숫자 7이 더 이상 다음 값보다 크지 않은 첫 번째 인덱스를 반환한다.
파이썬 numpy 배열 검색 - 오른쪽에서부터 검색
기본적으로 왼쪽 가장 많은 인덱스가 반환되지만 side='right'를 지정하여 오른쪽 가장 많은 인덱스를 대신 반환할 수 있다.
오른쪽부터 시작하여 값 7을 삽입해야 하는 인덱스를 찾는다:
import numpy as np arr = np.array([6, 7, 8, 9]) print("arr : ", arr) x = np.searchsorted(arr, 7, side='right') print("x = np.searchsorted(arr, 7, side='right') : ", x) |
예제 설명: 정렬 순서를 유지하려면 인덱스 2에 숫자 7을 삽입해야 한다.
메서드는 오른쪽에서 검색을 시작하고 숫자 7이 더 이상 다음 값보다 작지 않은 첫 번째 인덱스를 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 numpy 배열 - 다중값 검색
두 개 이상의 값을 검색하려면 지정된 값이 있는 배열을 사용한다.
값 2, 4, 6을 삽입해야 하는 인덱스 찾기:
import numpy as np arr = np.array([1, 3, 5, 7]) print("arr : ", arr) x = np.searchsorted(arr, [2, 4, 6]) print('x = np.searchsorted(arr, [2, 4, 6]) : ', x) |
반환 값은 원래 배열에서 순서를 유지하기 위해 2, 4, 6이 삽입되는 세 개의 인덱스를 포함하는 배열이다.
위의 코드를 실행하면 아래 그림과 같다.
이번글에서는 파이썬 numpy 모듈에서 배열안의 항목을 검색하는 방법에 대해서 살펴보았다.
파이썬 numpy 모듈에서 검색하는 메소드로 where(), searchsorted() 함수를 학습하였다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 numpy 배열 필터 (0) | 2023.12.17 |
---|---|
파이썬 numpy 배열 정렬 (0) | 2023.12.16 |
파이썬 numpy 배열 분할(splitting) (0) | 2023.12.14 |
파이썬 numpy 배열 결합(Join) (0) | 2023.12.13 |
파이썬 numpy 배열 반복(Array Iterating) (0) | 2023.12.11 |
댓글