import numpy as np
array1 = np.array([2, 3, 5, 7, 11, 13, 17 ,19 , 23, 29, 31])
array1 요소가 4보다 크면 True
array1 > 4
array([False, False, True, True, True, True, True, True, True,
True, True])
array1 요소가 2로 나누었을때 나머지가 0이면 True
array1 % 2 == 0
array([ True, False, False, False, False, False, False, False, False,
False, False])
where
np.where
np.where 함수는 조건을 만족하는 요소의 인덱스를 반환합니다.
True값 인덱스 찾기
np.where(condition)
booleans = np.array([True, True, False, True, False, True])
np.where(booleans) #(array([0, 1, 3, 5]), )
array1 > 4
array([False, False, True, True, True, True, True, True, True, True, True])
4보다 큰 값이 있는 인덱스만 가져오기
np.where(array1 > 4)
(array([ 2, 3, 4, 5, 6, 7, 8, 9, 10]),)
filter
파이썬에서 filter가 이미 내장 함수로 정의되어 있다는 의미는, 파이썬이 기본적으로 제공하는 표준 라이브러리에 filter라는 이름의 함수가 포함되어 있다는 것입니다. 이 내장 함수는 주어진 조건을 만족하는 요소들을 걸러내기 위해 사용됩니다.
파이썬 내장 함수 'filter'
filter(function, iterable)
파이썬 내장 함수 filter는 두 개의 인수를 받습니다:
- function: 각 요소에 대해 참(True) 또는 거짓(False)을 반환하는 함수.
- iterable: 리스트, 튜플, 문자열 등 반복 가능한 객체.
filter 함수는 반복 가능한 객체의 각 요소에 대해 주어진 함수를 적용하여 참을 반환하는 요소들만 걸러낸 새로운 반복자를 반환합니다.
# 짝수를 필터링하는 함수
def is_even(num):
return num % 2 == 0
# 리스트에서 짝수만 필터링
numbers = [1, 2, 3, 4, 5, 6]
filtered_numbers = filter(is_even, numbers)
print(list(filtered_numbers)) # 출력: [2, 4, 6]
변수 이름으로 filter 사용하지 않기
파이썬 내장 함수의 이름을 변수 이름으로 사용하는 것은 권장되지 않습니다.
내장 함수 이름을 변수 이름으로 사용하면 그 함수에 접근할 수 없게 되며, 코드의 가독성을 떨어뜨릴 수 있습니다.
array1 = np.array([1, 2, 3, 4, 5, 6])
# array1의 요소 중 4보다 큰 요소의 인덱스를 찾음
filter_indices = np.where(array1 > 4)
print(filter_indices) # 출력: (array([4, 5]),)
여기서 filter_indices는 array1의 요소 중 4보다 큰 값(즉, 5와 6)의 인덱스를 포함하는 배열을 반환합니다. np.where는 조건을 만족하는 인덱스를 반환하므로, 이를 활용하여 조건을 만족하는 요소를 선택할 수 있습니다.