Vaex 튜토리얼 — lazy 표현식과 그리드 통계

Vaex 튜토리얼 — lazy 표현식과 그리드 통계

Vaex를 처음 쓸 때 가장 낯선 개념은 표현식(expression)이 만들어지는 시점엔 아무것도 계산되지 않는다는 점이에요. 이 lazy 특성이 Vaex의 성능 핵심이에요.

출처: https://vaex.readthedocs.io/en/tutorial.html

먼저 데이터를 열어요. Vaex는 자체 예제 데이터셋을 제공해요.

import vaex
df = vaex.example()  # 예제 데이터셋

칼럼을 조합해 표현식을 만들면 이 시점엔 아무것도 실제로 계산하지 않아요. 메모리에 값이 복사되지 않고, 필요할 때 lazy하게 평가돼요.

r = (df.x**2 + df.y**2)**0.5  # 표현식 생성 — 아직 계산 안 됨

Vaex의 핵심 기능은 N차원 그리드 위에서 통계 내기예요. binby(SQL의 group by에 해당)로 그리드 차원과 범위를 지정하고 shape를 정하면 히스토그램·카운트가 나와요.

df.mean(df.r, binby=[df.x, df.y], shape=32, limits=[-10, 10])  # 2D 평균
df.count(df.r, binby=[df.x, df.y], shape=32, limits=[-10, 10])  # 2D 카운트

편의를 위해 df.viz.heatmap(df.x, df.y, show=True) 같은 시각화 명령도 제공해요. 이렇게 하면 큰 데이터를 통째로 로드하지 않고도 탐색·시각화가 가능해져요.

참고: vaex DataFrame은 immutable(불변) 성향이 강해요. 기존 행을 바꾸기보다는 필터·선택·가상 칼럼(virtual column)으로 새 뷰를 만드는 방식이 자연스러워요.

더 알아보기