반응형
요즘 머신러닝 공부하면서 자주보게 되었던, 대괄호 안에 있는 for 문.
기술의 용어도 모르다가 "클린 파이썬" 이라는 책에서 알게 되었다.
리스트를 다루는 방법으로 map, filter 를 쓰는방법이 있다. ( javascript 를 써본사람은 익숙 할듯 )
numbers = [ 10, 45, 34, 89, 34, 23, 6 ]
square_numbers = map(lambda num: num**2, numbers) # 배열내 숫자의 제곱을 리턴
data = [1, "A", 0, False, True]
filtered_data = filter(None, data) # 모든 참값에 필터를 사용
이것들을 리스트 컴프리헨션을 이용한 변경 버전 이다.
square_numbers = [num**2 for num in numbers]
filtered_data = [item for item in data if item ]
즉, 배열내에 배열을 다루는 산식을 넣어서 배열에 대한 공식을 직접 써넣는 방법이다.
# 사용대상
for 문 1개와 if 문 0,1 개로 조합되는 식에 쓸 수 있음
# 장점
리스트에 대한 변환을 직관적으로 알아 볼 수 있다.
# 사용식
[ 리턴값 for 아이템 in 범위 {if 제한식} ]
조금 복잡한 버전. ( 2차원 배열 변환)
matrix = [[1,2,3],
[4,5,6],
[7,8,9]]
# 행렬회전
matrix_changed = [[ matrix[row][col]
for row in range(0,height) ]
for col in range(0,width ]
# 결과
matrix_changed = [[1,4,7],
[2,5,8],
[3,6,9]]
데이터 전처리에서 많이 보이는 스킬이니 눈으로 익혀두자!
반응형