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_indicesarray1의 요소 중 4보다 큰 값(즉, 5와 6)의 인덱스를 포함하는 배열을 반환합니다. np.where는 조건을 만족하는 인덱스를 반환하므로, 이를 활용하여 조건을 만족하는 요소를 선택할 수 있습니다.

'데이터 분석 > numpy' 카테고리의 다른 글

5. numpy 기본 통계  (0) 2024.06.03
3. numpy 기본 연산  (0) 2024.06.03
2. 인덱싱 슬라이싱  (0) 2024.06.03
1. array 생성하기 및 모듈 별명 지어주기  (0) 2024.06.03