使用此技能处理和分析超出可用RAM的大型表格数据集(数十亿行)。Vaex擅长核外DataFrame操作、惰性求值、快速聚合、大数据高效可视化和大型数据集上的机器学习。当用户需要处理大型CSV/HDF5/Arrow/Parquet文件、对海量数据集执行快速统计、创建大数据可视化或构建不适合内存的ML管道时适用。
Vaex
概述
Vaex是一个高性能Python库,专为延迟、核心外DataFrame设计,用于处理和可视化太大而无法放入RAM的表格数据集。Vaex可以每秒处理超过十亿行数据,支持对拥有数十亿行的数据集进行交互式数据探索和分析。
何时使用此技能
在以下情况下使用Vaex:
- 处理大于可用RAM的表格数据集(从千兆字节到太字节)
- 对海量数据集执行快速统计聚合
- 创建大型数据集的可视化和热图
- 在大数据上构建机器学习管道
- 在不同数据格式之间转换(CSV、HDF5、Arrow、Parquet)
- 需要延迟评估和虚拟列以避免内存开销
- 处理天文数据、金融时间序列或其他大规模科学数据集
安装
# 基础安装
uv pip install vaex
# 可选依赖
uv pip install vaex-hdf5 # HDF5 支持
uv pip install vaex-astro # 天文学数据支持
uv pip install vaex-ml # 机器学习支持
uv pip install vaex-jupyter # Jupyter 集成核心功能
Vaex提供六个主要功能领域,每个领域在参考目录中都有详细记录:
1. DataFrames和数据加载
从各种来源加载和创建Vaex DataFrames,包括文件(HDF5、CSV、Arrow、Parquet)、pandas DataFrames、NumPy数组和字典。参考references/core_dataframes.md了解:
- 高效打开大型文件
- 从pandas/NumPy/Arrow转换
- 使用示例数据集
- 理解DataFrame结构
2. 数据处理和操作
执行过滤、创建虚拟列、使用表达式和聚合数据,而无需将所有内容加载到内存中。参考references/data_processing.md了解:
- 过滤和选择
- 虚拟列和表达式
- 分组操作和聚合
- 字符串操作和日期时间处理
- 处理缺失数据
3. 性能和优化
利用Vaex的延迟评估、缓存策略和内存高效操作。参考references/performance.md了解:
- 理解延迟评估
- 使用
delay=True进行批处理操作 - 在需要时实例化列
- 缓存策略
- 异步操作
4. 数据可视化
创建大型数据集的交互式可视化,包括热图、直方图和散点图。参考references/visualization.md了解:
- 创建1D和2D图表
- 热图可视化
- 处理选择
- 自定义图表和子图
5. 机器学习集成
使用转换器、编码器和与scikit-learn、XGBoost和其他框架的集成构建ML管道。参考references/machine_learning.md了解:
- 特征缩放和编码
- PCA和维度减少
- K-means聚类
- 与scikit-learn/XGBoost/CatBoost集成
- 模型序列化和部署
6. I/O操作
以最佳性能高效读写各种格式的数据。参考references/io_operations.md了解:
- 文件格式建议
- 导出策略
- 使用Apache Arrow
- 处理大型文件的CSV
- 服务器和远程数据访问
快速入门模式
对于大多数Vaex任务,遵循以下模式:
import vaex
# 1. 打开或创建DataFrame
df = vaex.open('large_file.hdf5') # 或 .csv, .arrow, .parquet
# 或
df = vaex.from_pandas(pandas_df)
# 2. 探索数据
print(df) # 显示首/尾行和列信息
df.describe() # 统计摘要
# 3. 创建虚拟列(无内存开销)
df['new_column'] = df.x ** 2 + df.y
# 4. 用选择进行过滤
df_filtered = df[df.age > 25]
# 5. 计算统计信息(快速,延迟评估)
mean_val = df.x.mean()
stats = df.groupby('category').agg({'value': 'sum'})
# 6. 可视化
df.plot1d(df.x, limits=[0, 100])
df.plot(df.x, df.y, limits='99.7%')
# 7. 必要时导出
df.export_hdf5('output.hdf5')使用参考
参考文件包含每个功能领域的详细信息。根据具体任务将参考加载到上下文中:
- 基本操作:从
references/core_dataframes.md和references/data_processing.md开始 - 性能问题:查看
references/performance.md - 可视化任务:使用
references/visualization.md - ML管道:参考
references/machine_learning.md - 文件I/O:查阅
references/io_operations.md
最佳实践
- 使用HDF5或Apache Arrow格式以获得大型数据集的最佳性能
- 利用虚拟列而非实例化数据以节省内存
- 使用`delay=True`在执行多个计算时批处理操作
- 导出到高效格式而不是将数据保存在CSV中
- 使用表达式进行复杂计算,无需中间存储
- 使用`df.stat()`进行分析以了解内存使用情况并优化操作
常见模式
模式:将大型CSV转换为HDF5
import vaex
# 打开大型CSV(自动分块处理)
df = vaex.from_csv('large_file.csv')
# 导出到HDF5以便将来更快访问
df.export_hdf5('large_file.hdf5')
# 将来加载是即时的
df = vaex.open('large_file.hdf5')模式:高效聚合
# 使用delay=True批处理多个操作
mean_x = df.x.mean(delay=True)
std_y = df.y.std(delay=True)
sum_z = df.z.sum(delay=True)
# 一次性执行所有操作
results = vaex.execute([mean_x, std_y, sum_z])模式:用于特征工程的虚拟列
# 无内存开销 - 即时计算
df['age_squared'] = df.age ** 2
df['full_name'] = df.first_name + ' ' + df.last_name
df['is_adult'] = df.age >= 18资源
此技能在references/目录中包含参考文档:
core_dataframes.md- DataFrame创建、加载和基本结构data_processing.md- 过滤、表达式、聚合和转换performance.md- 优化策略和延迟评估visualization.md- 绘图和交互式可视化machine_learning.md- ML管道和模型集成io_operations.md- 文件格式和数据导入/导出
兼容工具
站内相关工具
数据来源:claude-scientific-skills(MIT 许可) | 查看上游来源
上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18
本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明。