vaex

Par mkurman · zorai

Utilisez cette skill pour traiter et analyser de grands jeux de données tabulaires (milliards de lignes) dépassant la RAM disponible. Vaex excelle dans les opérations DataFrame out-of-core, l'évaluation lazy, les agrégations rapides, la visualisation efficace de big data et le machine learning sur de grands datasets. À appliquer lorsque les utilisateurs ont besoin de travailler avec de grands fichiers CSV/HDF5/Arrow/Parquet, d'effectuer des statistiques rapides sur des datasets massifs, de créer des visualisations de big data, ou de construire des pipelines ML ne tenant pas en mémoire.

npx skills add https://github.com/mkurman/zorai --skill vaex

Vaex

Aperçu

Vaex est une bibliothèque Python haute performance conçue pour les DataFrames lazy et hors-mémoire, permettant de traiter et visualiser des ensembles de données tabulaires trop volumineux pour tenir en RAM. Vaex peut traiter plus d'un milliard de lignes par seconde, ce qui permet l'exploration et l'analyse de données interactives sur des ensembles contenant des milliards de lignes.

Quand Utiliser Cette Compétence

Utilisez Vaex quand :

  • Vous traitez des ensembles de données tabulaires plus grands que la RAM disponible (de gigaoctets à téraoctets)
  • Vous effectuez des agrégations statistiques rapides sur des ensembles massifs
  • Vous créez des visualisations et heatmaps de grands ensembles de données
  • Vous construisez des pipelines de machine learning sur du big data
  • Vous convertissez entre formats de données (CSV, HDF5, Arrow, Parquet)
  • Vous avez besoin d'évaluation lazy et de colonnes virtuelles pour éviter la surcharge mémoire
  • Vous travaillez avec des données astronomiques, des séries temporelles financières ou d'autres ensembles de données scientifiques à grande échelle

Capacités Principales

Vaex offre six domaines de capacité primaires, chacun documenté en détail dans le répertoire references :

1. DataFrames et Chargement de Données

Chargez et créez des DataFrames Vaex à partir de diverses sources incluant des fichiers (HDF5, CSV, Arrow, Parquet), des DataFrames pandas, des tableaux NumPy et des dictionnaires. Consultez references/core_dataframes.md pour :

  • Ouvrir efficacement les gros fichiers
  • Convertir à partir de pandas/NumPy/Arrow
  • Travailler avec des ensembles de données d'exemple
  • Comprendre la structure des DataFrames

2. Traitement et Manipulation de Données

Effectuez du filtrage, créez des colonnes virtuelles, utilisez des expressions et agrégez des données sans tout charger en mémoire. Consultez references/data_processing.md pour :

  • Filtrage et sélections
  • Colonnes virtuelles et expressions
  • Opérations groupby et agrégations
  • Opérations sur chaînes et gestion des datetimes
  • Travail avec les données manquantes

3. Performance et Optimisation

Exploitez l'évaluation lazy de Vaex, les stratégies de cache et les opérations économes en mémoire. Consultez references/performance.md pour :

  • Comprendre l'évaluation lazy
  • Utiliser delay=True pour le traitement par lots
  • Matérialiser les colonnes si nécessaire
  • Stratégies de cache
  • Opérations asynchrones

4. Visualisation de Données

Créez des visualisations interactives de grands ensembles de données incluant des heatmaps, histogrammes et diagrammes de dispersion. Consultez references/visualization.md pour :

  • Créer des tracés 1D et 2D
  • Visualisations heatmap
  • Travailler avec les sélections
  • Personnaliser les tracés et sous-tracés

5. Intégration du Machine Learning

Construisez des pipelines ML avec transformateurs, encodeurs et intégration avec scikit-learn, XGBoost et autres frameworks. Consultez references/machine_learning.md pour :

  • Mise à l'échelle et encodage des features
  • PCA et réduction de dimensionnalité
  • Clustering K-means
  • Intégration avec scikit-learn/XGBoost/CatBoost
  • Sérialisation et déploiement de modèles

6. Opérations d'I/O

Lisez et écrivez efficacement des données dans divers formats avec performance optimale. Consultez references/io_operations.md pour :

  • Recommandations sur les formats de fichiers
  • Stratégies d'export
  • Travailler avec Apache Arrow
  • Gestion des CSV pour gros fichiers
  • Accès aux données serveur et distantes

Modèle de Démarrage Rapide

Pour la plupart des tâches Vaex, suivez ce modèle :

import vaex

# 1. Ouvrir ou créer un DataFrame
df = vaex.open('large_file.hdf5')  # ou .csv, .arrow, .parquet
# OU
df = vaex.from_pandas(pandas_df)

# 2. Explorer les données
print(df)  # Affiche les premières/dernières lignes et infos colonnes
df.describe()  # Résumé statistique

# 3. Créer des colonnes virtuelles (pas de surcharge mémoire)
df['new_column'] = df.x ** 2 + df.y

# 4. Filtrer avec des sélections
df_filtered = df[df.age > 25]

# 5. Calculer des statistiques (rapide, évaluation lazy)
mean_val = df.x.mean()
stats = df.groupby('category').agg({'value': 'sum'})

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

# 7. Exporter si nécessaire
df.export_hdf5('output.hdf5')

Travailler avec les Références

Les fichiers de référence contiennent des informations détaillées sur chaque domaine de capacité. Chargez les références en contexte selon la tâche spécifique :

  • Opérations basiques : Commencez par references/core_dataframes.md et references/data_processing.md
  • Problèmes de performance : Vérifiez references/performance.md
  • Tâches de visualisation : Utilisez references/visualization.md
  • Pipelines ML : Consultez references/machine_learning.md
  • I/O fichiers : Consultez references/io_operations.md

Bonnes Pratiques

  1. Utilisez les formats HDF5 ou Apache Arrow pour une performance optimale avec de grands ensembles de données
  2. Exploitez les colonnes virtuelles au lieu de matérialiser les données pour économiser la mémoire
  3. Traitez par lots avec delay=True pour plusieurs calculs
  4. Exportez vers des formats efficaces plutôt que de conserver les données en CSV
  5. Utilisez des expressions pour les calculs complexes sans stockage intermédiaire
  6. Profilez avec df.stat() pour comprendre l'utilisation mémoire et optimiser les opérations

Modèles Courants

Modèle : Convertir un Gros CSV en HDF5

import vaex

# Ouvrir gros CSV (traité en chunks automatiquement)
df = vaex.from_csv('large_file.csv')

# Exporter en HDF5 pour accès plus rapide à l'avenir
df.export_hdf5('large_file.hdf5')

# Les chargements futurs sont instantanés
df = vaex.open('large_file.hdf5')

Modèle : Agrégations Efficaces

# Utiliser delay=True pour traiter par lots plusieurs opérations
mean_x = df.x.mean(delay=True)
std_y = df.y.std(delay=True)
sum_z = df.z.sum(delay=True)

# Exécuter tout en une fois
results = vaex.execute([mean_x, std_y, sum_z])

Modèle : Colonnes Virtuelles pour Feature Engineering

# Pas de surcharge mémoire - calculé à la volée
df['age_squared'] = df.age ** 2
df['full_name'] = df.first_name + ' ' + df.last_name
df['is_adult'] = df.age >= 18

Ressources

Cette compétence inclut la documentation de référence dans le répertoire references/ :

  • core_dataframes.md - Création de DataFrame, chargement et structure basique
  • data_processing.md - Filtrage, expressions, agrégations et transformations
  • performance.md - Stratégies d'optimisation et évaluation lazy
  • visualization.md - Traçage et visualisations interactives
  • machine_learning.md - Pipelines ML et intégration de modèles
  • io_operations.md - Formats de fichiers et import/export de données

Skills similaires