
for 루프는 리스트, 튜플, 문자열, 딕셔너리 등 반복 가능한(iterable) 객체의 요소를 하나씩 가져와 순차적으로 실행하는 반복문이다. 주어진 객체 내부를 순회하며 특정 작업을 반복적으로 수행할 때 사용된다. 머릿속으로 쉽게 떠올릴 수 있는 직관적인 구조 덕분에 초보자에게 유용하며, 데이터를 다룰 때 가장 먼저 떠오르는 반복문 방식이다. AI 를 활용한 연구 및 데이터 분석에서는 보통 pandas 패키지를 기반으로 데이터프레임을 다룬다. 하지만 데이터프레임의 크기가 커질수록 for 루프는 비효율적인 방법이 된다. for 루프는 데이터프레임의 각 요소를 하나씩 인덱싱하여 접근하기 때문에 연산 속도가 느려지고, 코드 실행 시간이 길어질 수 있기 때문이다.
그렇다면 for 루프를 어떻게 효율적으로 개선할 수 있을까? 대표적인 해결책으로 리스트 컴프리헨션(List Comprehension) 과 벡터 연산(Vectorized Operations)이 있다. 리스트 컴프리헨션은 반복문을 한 줄로 표현할 수 있도록 도와주는 파이썬 문법으로, 기존 for 루프보다 간결하면서도 실행 속도가 빠르다. 또한 pandas 와 함께 가장 기본적으로 사용되는 라이브러리인 numpy 에는 rolling 등 벡터 연산 기반 함수가 충실하게 내장되어 있기 때문에 이를 잘 활용하면 데이터를 매우 빠르게 처리할 수 있다.
백만 개의 행을 가진 데이터프레임 df와 컬럼 feature를 가정해 보자. feature 컬럼의 값을 제곱하여 새로운 컬럼 feature_squared 를 추가하는 과정을 for 루프와 리스트 컴프리헨션 벡터연산으로 구현하면 다음과 같다. 코드가 간소화될 뿐만 아니라, 데이터프레임이 커질수록 실행 시간도 유의미하게 개선될 것이다.
① for 루프 사용

② 리스트 컴프리헨션

③ 벡터 연산

최근 GPT 등 생성형 AI 의 발전으로 인해 코드 최적화도 AI 에게 맡길 수 있는 시대가 되었다. 예를 들어 "이 for 루프를 numpy 의 벡터 연산을 활용하도록 개선해줘"라고 요청하면 AI 가 최적화한 코드를 바로 확인할 수도 있으니, 가능한 한 반복문을 줄이고 리스트 컴프리헨션과 벡터연산을 적극 활용해 보기 바란다!
'K-water AI뉴스레터 B호 > Tips' 카테고리의 다른 글
| 딥시크, 제대로 알아보자! (0) | 2025.03.25 |
|---|---|
| MLOps(Machine Learning& Operations) (1) | 2025.01.24 |
| [파이썬 코딩] 복사에도 종류가 있다고? (1) | 2025.01.24 |