关于 cudf-analytics
使用 NVIDIA RAPIDS cuDF 及其类 pandas API 进行 GPU 加速表格分析的 Skill。适用于在大型数据集上计算统计摘要、聚合、相关性和异常值。
主要功能
- 01使用 cuDF 分析表格数据
- 02计算统计摘要
- 03使用 groupby 聚合数据
- 04通过 IQR 或 Z-score 检测离群值
- 05计算相关矩阵
适用场景
- 01分析数百万行的数据集
- 02汇总 CSV 数据
- 03比较分组指标
- 04查找数值列中的异常
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ langchain-ai/ deepagents --skill cudf-analytics安装后在 Claude Code 中输入/cudf-analytics确认已加载。
详细介绍
cuDF 分析技能
基于 NVIDIA RAPIDS cuDF 的 GPU 加速数据分析。cuDF 提供类似 pandas 的 API,可在 NVIDIA GPU 上运行,在大型数据集上实现大幅加速。
何时使用此技能
在以下情况下使用此技能:
- 分析 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 的字符串数据类型
输出指南
报告分析结果时:
- 包含数据集的维度(行数 x 列数)
- 以格式化表格展示关键统计信息
- 突出显著的模式、趋势或异常
- 同时提供汇总统计和具体示例
- 说明任何数据质量问题(缺失值、离群值)
评论
支持 Markdown