用途:维护、调试或扩展现有 Vaex 管道,用于超出内存的 HDF5/Arrow/Parquet 表格的内存映射读取、快速聚合与分箱统计,或把大型 CSV 转成这些格式,也可将工作流转写到 Polars。
主要能力:vaex.open 打开 HDF5/Arrow/Parquet/CSV,从 pandas/NumPy/Arrow 转换;过滤、命名选择、虚拟列与表达式、groupby 与聚合、字符串/日期时间/缺失值;惰性求值、delay=True 批量聚合成单次遍历、物化、缓存与异步执行;df.viz 直方图与热力图;vaex.ml 的缩放器、编码器、PCA、k-means 及 scikit-learn/XGBoost/LightGBM/CatBoost 包装器。
安装(环境需固定): uv venv --python 3.12 .venv-vaex uv pip install --python .venv-vaex "vaex==4.19.*" uv pip install --python .venv-vaex "matplotlib<3.9"
基本用法:df = vaex.open('large_file.hdf5');df.describe() 查看摘要;df['new_column'] = df.x ** 2 + df.y 建虚拟列;df[df.age > 25] 过滤;df.x.mean() 统计;df.groupby('category').agg({'value': 'sum'});df.viz.histogram(df.x, limits=[0, 100]);df.viz.heatmap(df.x, df.y, limits='99.7%');df.export_hdf5('output.hdf5')。可用 vaex.from_csv('large_file.csv', convert=True, chunk_size=5_000_000) 分块转 HDF5。聚合可用 delay=True 返回 promise,再 df.execute() 一次执行。
限制:Vaex 处于最低维护状态,2024 年核心开发者表示参与减少,发布约每年一次(4.18、4.19),4.19 仅支持 Python 3.9–3.12 且 pandas<3,matplotlib≥3.9 会破坏二维绘图;ML 的 booster 与 scikit-learn 包装器会把训练特征物化到内存,只有转换器和预测列保持惰性;Polars 不能直接读 Vaex 的 HDF5,需先 export_parquet 或 export_arrow。新项目一般建议 Polars 或 Dask,仅当内存映射 HDF5 与快速分箱统计可视化确有必要时选用 Vaex。