본문 바로가기
파이썬/파이썬기본문법

파이썬 numpy 배열 검색

by flycoding 2023. 12. 15.
반응형

파이썬 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가 있음을 의미합니다.

 

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 검색  where() 함수 활용 예제

 

 


값이 짝수인 인덱스 찾기:

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)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 검색  where() 함수 - 짝수 활용 예제

 

 

값이 홀수인 인덱스 찾기:

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 배열 검색  where() 함수 -홀수 활용 예제

 

 

파이썬 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)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 numpy 배열 정렬된 검색 searchsorted() 함수 활용 예제

 

예제 설명: 정렬 순서를 유지하려면 인덱스 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 배열 정렬된 검색 searchsorted() 함수 side='right' 오른쪽에서부터 검색 활용 예제

 

파이썬 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 배열 - 다중값 검색 searchsorted() 활용 예제

 

이번글에서는 파이썬 numpy 모듈에서 배열안의 항목을 검색하는 방법에 대해서 살펴보았다.

파이썬 numpy 모듈에서 검색하는 메소드로 where(), searchsorted() 함수를 학습하였다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글