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 は、RAM に収まらないほど大きな表形式データセットを処理・可視化するために設計された、高性能な Python ライブラリです。遅延評価かつアウトオブコアで動作する DataFrame を提供します。Vaex は 1 秒あたり 10 億行以上を処理できるため、数十億行規模のデータセットでもインタラクティブなデータ探索や分析が可能です。
このスキルを使うタイミング
次のような場合に Vaex を使用してください:
- 利用可能な RAM より大きい表形式データセット(数ギガバイトから数テラバイト)を処理する場合
- 巨大なデータセットに対して高速な統計集計を行う場合
- 大規模データセットの可視化やヒートマップを作成する場合
- ビッグデータを用いた機械学習パイプラインを構築する場合
- データ形式(CSV、HDF5、Arrow、Parquet)間で変換する場合
- メモリのオーバーヘッドを避けるために遅延評価や仮想列が必要な場合
- 天文データ、金融の時系列データ、その他の大規模な科学データセットを扱う場合
主要な機能
Vaex は 6 つの主要な機能領域を提供しており、それぞれの詳細は references ディレクトリに記載されています。
1. DataFrame とデータ読み込み
ファイル(HDF5、CSV、Arrow、Parquet)、pandas DataFrame、NumPy 配列、辞書など、さまざまなソースから Vaex DataFrame を読み込み・作成します。以下の内容については references/core_dataframes.md を参照してください:
- 大きなファイルを効率的に開く方法
- pandas/NumPy/Arrow からの変換
- サンプルデータセットの扱い
- DataFrame の構造の理解
2. データ処理と操作
全データをメモリに読み込むことなく、フィルタリング、仮想列の作成、式の使用、データの集計を行います。以下の内容については references/data_processing.md を参照してください:
- フィルタリングと選択
- 仮想列と式
- groupby 操作と集計
- 文字列操作と日時の扱い
- 欠損データの扱い
3. パフォーマンスと最適化
Vaex の遅延評価、キャッシュ戦略、メモリ効率の良い操作を活用します。以下の内容については references/performance.md を参照してください:
- 遅延評価の理解
- 操作をまとめて実行するための
delay=Trueの使用 - 必要に応じた列のマテリアライズ
- キャッシュ戦略
- 非同期操作
4. データ可視化
ヒートマップ、ヒストグラム、散布図など、大規模データセットのインタラクティブな可視化を作成します。以下の内容については references/visualization.md を参照してください:
- 1 次元および 2 次元のプロットの作成
- ヒートマップによる可視化
- 選択の操作
- プロットやサブプロットのカスタマイズ
5. 機械学習との統合
トランスフォーマー、エンコーダーを用いた ML パイプラインを構築し、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を使用してください - ML パイプライン:
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- ファイル形式とデータのインポート/エクスポート