用途:Vaex 用于在单台笔记本上对 1 亿至 10 亿行以上的表格数据做交互式探索与统计,无需云集群。
主要能力:通过内存映射(mmap)以零拷贝方式在毫秒级打开 100GB+ 的 HDF5/Arrow 文件,不把数据载入内存;支持虚拟列与惰性求值,派生特征和统计变换不额外分配内存;支持快速二维分箱直方图与热力图、散点可视化;聚合计算由多线程 C++ 执行。
使用方式:用 vaex.open('file.hdf5') 打开数据集,用 len(df) 查看行数,用 df.mean(df.amount) 等表达式做聚合;用 df['col'] = ... 定义虚拟列,用布尔过滤 df[(df.x > 0) & (df.y < 1)] 筛选;用 df.count(binby=[df.x, df.y], shape=256) 生成二维分箱计数并配合 matplotlib 绘制热力图;用 vaex.from_csv('raw.csv', convert='data.arrow', chunk_size=5_000_000) 将 CSV 转为分块内存映射的 Arrow 格式。
适用场景:十亿行级表格分析、零拷贝打开大文件、虚拟列与惰性统计、超快二维热力图与直方图、大数据集格式转换。
限制与注意:Vaex 不是 pandas,不支持 iloc 等基于行号的整数索引,应使用布尔过滤;数据集超过系统内存时不要转为 Pandas;避免用 Python 循环逐行迭代,应使用 Vaex 聚合表达式;中间数据建议写为 Arrow 或 Parquet,避免未压缩 CSV;打开文件需为 HDF5、Arrow 或 Parquet 格式,否则需先转换。