mcpField
V
vaex

vaex

github.com/ovachiever数据与数据库5648 次安装48 周前更新
代码仓库

关于 vaex

Vaex 是用于探索和处理超出可用内存容量的表格数据集的 Python 库及 Skill。它结合惰性、节省内存的操作与可视化和机器学习工作流,适用于数据分析人员和开发者。

主要功能

  1. 01支持内存外 DataFrame
  2. 02惰性表达式与虚拟列
  3. 03筛选与统计聚合
  4. 04交互式图表和热图
  5. 05机器学习工作流支持
  6. 06多种格式的导入与导出

适用场景

  1. 01探索大于 RAM 的数据集
  2. 02聚合大型表格数据
  3. 03可视化大型数据集
  4. 04准备机器学习工作流

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ovachiever/droid-tings --skill vaex

安装后在 Claude Code 中输入/vaex确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
core_dataframes.md
data_processing.md
io_operations.md
machine_learning.md
performance.md
visualization.md

详细介绍

Vaex

概述

Vaex 是一个高性能 Python 库,专为惰性、超出内存容量的数据帧而设计,可处理和可视化无法装入 RAM 的表格数据集。Vaex 每秒可处理超过 10 亿行数据,让你能够交互式地探索和分析包含数十亿行的数据集。

何时使用此技能

在以下情况下使用 Vaex:

  • 处理大于可用 RAM 的表格数据集(从 GB 到 TB)
  • 对海量数据集执行快速统计聚合
  • 为大型数据集创建可视化图表和热力图
  • 基于大数据构建机器学习流水线
  • 在数据格式之间转换(CSV、HDF5、Arrow、Parquet)
  • 需要惰性求值和虚拟列,以避免内存开销
  • 处理天文数据、金融时间序列或其他大规模科学数据集

核心功能

Vaex 提供六大核心功能领域,每项功能均在 references 目录中有详细说明:

1. 数据帧和数据加载

从多种来源加载和创建 Vaex 数据帧,包括文件(HDF5、CSV、Arrow、Parquet)、pandas 数据帧、NumPy 数组和字典。有关以下内容,请参阅 references/core_dataframes.md:

  • 高效打开大型文件
  • 从 pandas/NumPy/Arrow 转换
  • 使用示例数据集
  • 了解数据帧结构
2. 数据处理与操作

执行筛选、创建虚拟列、使用表达式并聚合数据,而无需将所有数据加载到内存中。有关以下内容,请参阅 references/data_processing.md:

  • 筛选和选择
  • 虚拟列和表达式
  • 分组操作和聚合
  • 字符串操作和日期时间处理
  • 处理缺失数据
3. 性能与优化

利用 Vaex 的惰性求值、缓存策略和高效内存操作。有关以下内容,请参阅 references/performance.md:

  • 了解惰性求值
  • 使用 delay=True 批量执行操作
  • 按需物化列
  • 缓存策略
  • 异步操作
4. 数据可视化

为大型数据集创建交互式可视化图表,包括热力图、直方图和散点图。有关以下内容,请参阅 references/visualization.md:

  • 创建一维和二维图表
  • 热力图可视化
  • 使用选择
  • 自定义图表和子图
5. 机器学习集成

借助转换器、编码器以及与 scikit-learn、XGBoost 和其他框架的集成,构建机器学习流水线。有关以下内容,请参阅 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. Open or create DataFrame
df = vaex.open('large_file.hdf5')  # or .csv, .arrow, .parquet
# OR
df = vaex.from_pandas(pandas_df)

# 2. Explore the data
print(df)  # Shows first/last rows and column info
df.describe()  # Statistical summary

# 3. Create virtual columns (no memory overhead)
df['new_column'] = df.x ** 2 + df.y

# 4. Filter with selections
df_filtered = df[df.age > 25]

# 5. Compute statistics (fast, lazy evaluation)
mean_val = df.x.mean()
stats = df.groupby('category').agg({'value': 'sum'})

# 6. Visualize
df.plot1d(df.x, limits=[0, 100])
df.plot(df.x, df.y, limits='99.7%')

# 7. Export if needed
df.export_hdf5('output.hdf5')

使用参考文档

参考文件详细介绍了各个功能领域。根据具体任务将参考文件加载到上下文中:

  • 基本操作:从 references/core_dataframes.md 和 references/data_processing.md 开始
  • 性能问题:查看 references/performance.md
  • 可视化任务:使用 references/visualization.md
  • 机器学习流水线:参阅 references/machine_learning.md
  • 文件 I/O:查阅 references/io_operations.md

最佳实践

  1. 使用 HDF5 或 Apache Arrow 格式,以便在处理大型数据集时获得最佳性能
  2. 利用虚拟列,而不是将数据实体化,以节省内存
  3. 执行多项计算时,使用 delay=True 批量处理操作
  4. 导出为高效格式,不要将数据保留为 CSV
  5. 使用表达式执行复杂计算,无需中间存储
  6. 使用 df.stat() 分析性能,了解内存使用情况并优化操作

常见模式

模式:将大型 CSV 转换为 HDF5
import vaex

# Open large CSV (processes in chunks automatically)
df = vaex.from_csv('large_file.csv')

# Export to HDF5 for faster future access
df.export_hdf5('large_file.hdf5')

# Future loads are instant
df = vaex.open('large_file.hdf5')
模式:高效聚合
# Use delay=True to batch multiple operations
mean_x = df.x.mean(delay=True)
std_y = df.y.std(delay=True)
sum_z = df.z.sum(delay=True)

# Execute all at once
results = vaex.execute([mean_x, std_y, sum_z])
模式:用于特征工程的虚拟列
# No memory overhead - computed on the fly
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 - 文件格式以及数据导入/导出

评论

支持 Markdown