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

파이썬 numpy 배열 필터

by flycoding 2023. 12. 17.
반응형

파이썬 numpy 배열 필터

일부 요소를 기존 배열에서 가져온 후 새로운 배열을 만드는 것을 필터링이라고 한다.
NumPy에서는 부울 인덱스 목록을 사용하여 배열을 필터링한다.

부울 인덱스 목록은 배열의 인덱스에 해당하는 부울의 리스트이다.

인덱스의 값이 True이면 해당 요소가 필터링된 배열에 포함되어 있고, 해당 인덱스의 값이 False이면 해당 요소는 필터링된 배열에서 제외된다.

인덱스 0 및 2의 요소로 배열을 만든다:

import numpy as np

arr = np.array([41, 42, 43, 44])
print("arr : ", arr)

x = arr[[True, False, True, False]]
print('x = arr[[True, False, True, False]] : ', x)

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

파이썬 numpy 배열 필터 활용 예제

 

 

위의 예는 [41, 43]을 반환하는데, 그 이유는 무엇입니까?

새 배열에는 필터 배열의 값이 True인 값만 포함되므로, 이 경우 인덱스 0과 2가 해당된다.

 

파이썬 numpy 필터 배열 생성

위의 예에서는 True 값과 False 값을 하드 코딩했지만 일반적으로 사용되는 것은 조건에 따라 필터 배열을 만드는 것다.

42보다 높은 값만 반환하는 필터 배열을 만든다:

import numpy as np

arr = np.array([41, 42, 43, 44])
print("arr : ", arr)

# Create an empty list
filter_arr = []

# go through each element in arr
for element in arr:
  # if the element is higher than 42, set the value to True, otherwise False:
  if element > 42:
    filter_arr.append(True)
  else:
    filter_arr.append(False)

newarr = arr[filter_arr]
print("filter_arr : ", filter_arr)
print("newarr-filter_arr : ", newarr)

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

파이선 numpy 필터 배열 활용 예제

 

 

원래 배열에서 짝수 요소만 반환하는 필터 배열을 만든다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])
print("arr : ", arr)

# Create an empty list
filter_arr = []

# go through each element in arr
for element in arr:
  # if the element is completely divisble by 2, set the value to True, otherwise False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)

newarr = arr[filter_arr]

print("filter_arr : ", filter_arr)
print("newarr-filter_arr : ", newarr)

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

파이선 numpy 필터 배열 - 짝수 필터 활용 예제

 

파이썬 numpy 배열로부터 필터 생성

위의 예는 NumPy에서 상당히 일반적인 작업이며 NumPy는 이를 해결하는 좋은 방법을 제공한다.
우리는 우리의 조건에서 반복 가능한 변수 대신 배열을 직접 대체할 수 있고 그것은 우리가 기대하는 대로 작동할 것이다.

42보다 높은 값만 반환하는 필터 배열을 만든다:

import numpy as np

arr = np.array([41, 42, 43, 44])
print("arr : ", arr)

filter_arr = arr > 42

newarr = arr[filter_arr]

print("filter_arr : ", filter_arr)
print("newarr-filter_arr : ", newarr)

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

파이선 numpy 필터 배열 활용 예제

 

 

원래 배열에서 짝수 요소만 반환하는 필터 배열을 만든다:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7])
arr = np.array([41, 42, 43, 44])
print("arr : ", arr)

filter_arr = arr % 2 == 0

newarr = arr[filter_arr]

print("filter_arr : ", filter_arr)
print("newarr-filter_arr : ", newarr)

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

파이선 numpy 필터 배열 - 짝수 필터 활용 예제

 

 

지금까지 파이썬 numpy 배열 필터에 대해서 살펴보았다.

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

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

 

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

반응형

댓글