Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill for processing and analyzing large tabular datasets (billions of rows) that exceed available RAM. Vaex excels at out-of-core DataFrame operations, lazy evaluation, fast aggregations, efficient visualization of big data, and machine learning on large datasets. Apply when users need to work with large CSV/HDF5/Arrow/Parquet files, perform fast statistics on massive datasets, create visualizations of big data, or build ML pipelines that do not fit in memory.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 246% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 43% | 0% |
Vaex is a high-performance Python library designed for lazy, out-of-core DataFrames to process and visualize tabular datasets that are too large to fit into RAM. Vaex can process over a billion rows per second, enabling interactive data exploration and analysis on datasets with billions of rows.
Install the full meta-package (recommended):
bashuv pip install vaex
Minimal install (pick only what you need):
bashuv pip install vaex-core vaex-viz vaex-hdf5 vaex-ml
The vaex package is a meta-package that pulls in vaex-core, vaex-viz, vaex-hdf5, vaex-ml, and other sub-packages. Arrow support is built into vaex-core (the separate vaex-arrow package is deprecated). vaex-distributed is deprecated in favor of vaex-enterprise.
Version notes (vaex 4.19.0+): Python 3.12 and NumPy v2 require vaex >= 4.19.0. On Windows, you may need Python dev headers to build the annoy dependency.
Use Vaex when:
Vaex vs alternatives: Use polars when data fits in RAM and you need maximum in-memory speed. Use dask when you need distributed pandas/NumPy across a cluster. Use vaex for single-machine, out-of-core analytics on tabular data that exceeds RAM via memory-mapped HDF5/Arrow files.
Vaex provides six primary capability areas, each documented in detail in the references directory:
Load and create Vaex DataFrames from various sources including files (HDF5, CSV, Arrow, Parquet), pandas DataFrames, NumPy arrays, and dictionaries. Reference references/core_dataframes.md for:
Perform filtering, create virtual columns, use expressions, and aggregate data without loading everything into memory. Reference references/data_processing.md for:
Leverage Vaex's lazy evaluation, caching strategies, and memory-efficient operations. Reference references/performance.md for:
delay=True for batching operationsCreate interactive visualizations of large datasets including heatmaps, histograms, and scatter plots. Reference references/visualization.md for:
Build ML pipelines with transformers, encoders, and integration with scikit-learn, XGBoost, and other frameworks. Reference references/machine_learning.md for:
Efficiently read and write data in various formats with optimal performance. Reference references/io_operations.md for:
For most Vaex tasks, follow this pattern:
pythonimport 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.viz is the recommended accessor since vaex 4.0) df.viz.heatmap(df.x, df.y, limits='99.7%', show=True) # Legacy: df.plot1d() and df.plot() still work on the DataFrame # 7. Export if needed df.export_hdf5('output.hdf5')
The reference files contain detailed information about each capability area. Load references into context based on the specific task:
references/core_dataframes.md and references/data_processing.mdreferences/performance.mdreferences/visualization.mdreferences/machine_learning.mdreferences/io_operations.mddelay=True when performing multiple calculationsdf.describe() and df.nbytes to understand data shape and memory usagepythonimport vaex # Open large CSV lazily (vaex 4.14+), or use from_csv to convert to HDF5 df = vaex.open('large_file.csv') # df = vaex.from_csv('large_file.csv', convert='large_file.hdf5') # Export to HDF5 for faster future access df.export_hdf5('large_file.hdf5') # Future loads are instant df = vaex.open('large_file.hdf5')
python# 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])
python# 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
This skill includes reference documentation in the references/ directory:
core_dataframes.md - DataFrame creation, loading, and basic structuredata_processing.md - Filtering, expressions, aggregations, and transformationsperformance.md - Optimization strategies and lazy evaluationvisualization.md - Plotting and interactive visualizationsmachine_learning.md - ML pipelines and model integrationio_operations.md - File formats and data import/exportOther measured skills in the registry, with their headline benchmark lift.