mcpField
C
cudf-analytics

cudf-analytics

github.com/langchain-aiデータ・データベース30.7k216 回インストール今日更新
リポジトリ

cudf-analytics について

NVIDIA RAPIDS cuDF と pandas 互換 API を使って表形式データを GPU で分析するスキルです。大規模データセットの統計要約、集計、相関、異常値検出に対応します。

主な機能

  1. 01cuDF による表形式データ分析
  2. 02統計要約の計算
  3. 03groupby によるデータ集計
  4. 04IQR または Z-score による外れ値検出
  5. 05相関行列の計算

活用シーン

  1. 01数百万行のデータセットの分析
  2. 02CSV データの要約
  3. 03グループ別指標の比較
  4. 04数値列の異常検出

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/langchain-ai/deepagents --skill cudf-analytics

インストール後、Claude Code で/cudf-analyticsを入力して読み込まれたか確認します。

詳細

cuDF 分析スキル

NVIDIA RAPIDS cuDF を使用した GPU アクセラレーション対応のデータ分析です。cuDF は NVIDIA GPU 上で動作する pandas に似た API を提供し、大規模なデータセットで大幅な高速化を実現します。

このスキルを使用する場面

次の場合にこのスキルを使用します。

  • CSV ファイル、データセット、または表形式データを分析する
  • 統計的な要約(平均値、中央値、標準偏差、四分位数)を計算する
  • groupby 集計を実行する
  • データの異常値や外れ値を検出する
  • 数百万行のデータセットをプロファイリングする
  • 相関行列を計算する

初期化(必須)

すべてのスクリプトは、必ず次の定型コードから始めてください。これはインポートだけでなく、実際の GPU 操作をテストします。

import pandas as pd

try:
    import cudf
    # Smoke-test: verify GPU compute AND host transfer both work
    _test = cudf.Series([1, 2, 3])
    assert _test.sum() == 6
    assert _test.to_pandas().tolist() == [1, 2, 3]
    GPU = True
except Exception as e:
    print(f"[GPU] cudf unavailable, falling back to pandas: {e}")
    GPU = False

def read_csv(path):
    return cudf.read_csv(path) if GPU else pd.read_csv(path)

def to_pd(df):
    """Convert cuDF DataFrame/Series to pandas. Use this instead of .to_pandas() directly."""
    if not GPU:
        return df
    try:
        return df.to_pandas()
    except Exception as e:
        print(f"[GPU] .to_pandas() failed, using Arrow fallback: {e}")
        return df.to_arrow().to_pandas()

クイックリファレンス

cuDF は pandas API を反映しています。一般的な操作は次のとおりです。

データの読み込み
df = read_csv("data.csv")
統計的な要約
# Use to_pd() when you need pandas output
summary = to_pd(df[["value", "score"]].describe())

# Scalar values work directly with float()
mean_val = float(df["value"].mean())
q1 = float(df["value"].quantile(0.25))

# Correlation
corr = float(df["value"].corr(df["score"]))
groupby 集計
result = df.groupby("category").agg({
    "revenue": ["sum", "mean", "count"],
    "quantity": ["sum", "mean"],
})
result_pd = to_pd(result)
異常値の検出(IQR 法)
col = "value"
Q1 = float(df[col].quantile(0.25))
Q3 = float(df[col].quantile(0.75))
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR
outliers = to_pd(df[(df[col] < lower) | (df[col] > upper)])
異常値の検出(Z スコア法)
mean = float(df[col].mean())
std = float(df[col].std())
df["z_score"] = (df[col] - mean) / std
anomalies = to_pd(df[df["z_score"].abs() > 3])
フィルタリングと選択
# Filter rows
filtered = df[df["status"] == "active"]

# Select columns
subset = df[["name", "revenue", "date"]]

# Sort
sorted_df = df.sort_values("revenue", ascending=False)

# Convert to pandas for final output / iteration
result_pd = to_pd(sorted_df)

データ型の要件

最適なパフォーマンスを得るには、cuDF で型を明示的に指定する必要があります。

  • 数値データには float32 または float64 を使用します
  • 整数データには int32 または int64 を使用します
  • 文字列列では、cuDF の文字列 dtype が自動的に使用されます

出力ガイドライン

分析結果を報告する際は、次の点に留意してください。

  • データセットの規模(行数 x 列数)を含めます
  • 主要な統計値を整形済みの表で示します
  • 注目すべきパターン、傾向、または異常を強調します
  • 要約統計量と具体例の両方を示します
  • データ品質上の問題(欠損値、外れ値)があれば記載します

コメント