Vaex:Gaia 时代的大数据探索
摘要
我们提出一个名为 vaex 的新 Python 库,用于处理极大的表格数据集,例如像 Gaia 星表、N 体模拟或任何其他可按行和列结构化的常规数据集等天文星表。在规则 N 维网格上快速计算统计量,使得每秒可分析和可视化约十亿行。我们使用流式算法、内存映射文件和零内存拷贝策略,以支持对大于内存的数据集进行探索,例如核外(out-of-core)算法。Vaex 允许使用普通 Python 表达式和(子集)numpy 函数进行任意(数学)变换,这些变换被惰性求值并在需要时以小分块计算,从而避免浪费 RAM。布尔表达式(同样惰性求值)可用于探索数据的子集,我们称之为选择(selections)。Vaex 使用与非常流行的库 Pandas 类似的 DataFrame API,有助于从 Pandas 迁移。可视化是 vaex 的关键点之一,使用一维(如直方图)、二维(如带颜色映射的二维直方图)和三维(使用体渲染)的分箱统计量完成。Vaex 拆分为多个包:vaex-core 用于计算部分,vaex-viz 用于主要基于 matplotlib 的可视化,vaex-jupyter 用于基于 Jupyter notebook/lab 中 IPyWidgets 的可视化,vaex-server 用于(可选的)客户端-服务器通信,vaex-ui 用于基于 Qt 的界面,vaex-hdf5 用于基于 hdf5 的内存映射存储,vaex-astro 用于天文相关的选择、变换和内存映射(基于列)的 fits 存储。Vaex 是开源的,在 github 上以 MIT 许可证提供,文档和其他信息可在主网站找到:https://vaex.io、https://docs.vaex.io 或 https://github.com/maartenbreddels/vaex
引用
@article{arxiv.1801.02638,
title = {Vaex: Big Data exploration in the era of Gaia},
author = {Maarten A. Breddels and Jovan Veljanoski},
journal= {arXiv preprint arXiv:1801.02638},
year = {2018}
}
备注
14 pages, 8 figures, Submitted to A&A, interactive version of Fig 4: https://vaex.io/paper/fig4