关于 vaex
Vaex 是面向大型表格数据的 Python 数据分析库,适合处理无法全部载入内存的数据集。它以惰性计算和虚拟列支持数据处理、统计分析、可视化及机器学习工作流。
主要功能
- 01惰性、内存外 DataFrame
- 02虚拟列与表达式处理
- 03大型数据集统计聚合
- 04交互式图表与热图
- 05机器学习流水线集成
- 06多种格式读写
适用场景
- 01分析超出可用内存的数据集
- 02对海量数据执行统计聚合
- 03可视化大型数据集中的分布
- 04构建大数据机器学习流水线
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jackspace/ claudeskillz --skill vaex安装后在 Claude Code 中输入/vaex确认已加载。
附带文件SKILL.json
详细介绍
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
最佳实践
- 使用 HDF5 或 Apache Arrow 格式,以便在处理大型数据集时获得最佳性能
- 利用虚拟列,而不是将数据实体化,以节省内存
- 执行多项计算时,使用
delay=True批量处理操作 - 导出为高效格式,不要将数据保留为 CSV
- 使用表达式执行复杂计算,无需中间存储
- 使用
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- 文件格式以及数据导入/导出