收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

cuDF:加快数据处理流程的DataFrame库

[复制链接]
7 Z) s0 R4 W7 p, ]
% }. H6 x3 e% u' \; l* n5 X2 x
1 F4 B: f! i' E1 m! W( B
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
$ `3 F: r, h4 A0 D; L
8 L/ }5 n' k& J0 X; h: B
* d+ I/ n$ |* _, q
8 Q0 h z3 d) ~3 S6 _, V! y7 J) I

雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。

, E+ W* }- j' {2 ~* I1 R$ u; d5 C

cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。

0 \0 |* k0 E" |' n8 [! R' z" [% J

cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。

* R# K6 P( B& j2 I- R8 J

例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:

/ [! o0 R8 h! x" p! @3 @/ w

import cudf, io, requests

5 \6 N) n4 @- _& z$ _" h

from io import StringIO

* a# Z4 Y$ T1 Q/ r

url="https://github.com/plotly/datasets/raw/master/tips.csv"

6 A1 q# T% R K& Y ( Z5 j( v% B% A) i% Y' D9 J7 e) ?

content = requests.get(url).content.decode(utf-8)

6 T. s1 F& M8 x4 Q: u

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1003 Q/ y# J# l' n2 c2 F. G " [+ f1 T8 p' W7 B- {

# display average tip by dining party size

& _. m4 g" ]: Z, F( u$ b

print(tips_df.groupby(size).tip_percentage.mean())

2 I. Z+ Z4 ~$ d" g$ W% z2 u0 r3 T5 o7 d. s( g. M6 t6 j( N

得到的输出为:

3 A. x: T. ]0 e7 F% i. X( a" o% H! x

size

: g6 _0 M0 o! d2 i3 L& L$ E. i0 @3 S$ O) G |9 ^. K# a

1    21.729201548727808

% B2 C! N% G$ |. H6 u2 m. U ! d3 d, R4 B2 a* _+ Y% o

2    16.571919173482897

/ g( Z( i6 G( Q: v, ]. M) q: z% h1 M. p) A1 b, n

3    15.215685473711837

/ _" B/ G' S' ~6 f5 c 6 u3 c; O5 p: j0 u ?& _

4    14.594900639351332

& z( W/ O* h$ I( H . l# x) V1 N7 ^: t! m2 t5 t

5    14.149548965142023

& i1 W. u+ H7 d% t . J) m" A9 S7 v

6    15.622920072028379

' C; Z# C$ b w' m ! ~3 W# p1 Y0 [

Name: tip_percentage, dtype: float64

& [- e0 u6 P4 T . w0 x# i8 X- W: Z: k. t

想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。

5 g% \4 _7 |$ o

那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。

( [/ p" e" m o# `3 H3 V

安装

: E8 S5 S$ _& B5 W5 V

conda

; }0 { r. [3 o! j7 t) I

cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:

+ l+ `$ A( x! P; U/ _3 d6 d1 N" x+ D ) D ], n0 O. _- F: F. |8 ^' E

# for CUDA 9.2

9 Y! S8 y4 O: m

conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \

   cudf=0.6 python=3.6 cudatoolkit=9.2' Z' ]3 j9 W! F m% x! H ( F t, }7 t& b5 V, a0 `

# or, for CUDA 10.0

. Q( k+ Y, T0 F2 w- X5 L% u3 k

conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \

9 v& T' b% `; I0 D

   cudf=0.6 python=3.6 cudatoolkit=10.0

1 g) P& b! c5 ^9 \ H/ B# B7 z( Z& V$ } * S0 c! _2 B' P; o6 q

我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。

/ D- u" |1 {" C

Pip

" {6 ^1 ] X$ x, Y

cuDF 也可以用 PyPi 安装。

9 X3 k y% e" Z" j; _; g " J8 B! z% j7 {5 l

# for CUDA 9.2

( o7 q4 z0 h/ |% V9 a! b( z

python3.6 -m pip install cudf-cuda92==0.6

/ M# }7 d# N7 }% r$ W5 j1 }, R8 N1 W! ]; W4 A* n9 x

# or, for CUDA 10.0

5 |2 o- t; K. L

python3.6 -m pip install cudf-cuda100==0.6

% Q9 C# f( F% e" J# Y5 ^ 4 d# ]- ]; A. H$ {0 C8 p5 T4 o0 Z

注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。

1 h0 O! e! C- b4 F$ \% F

via : https://github.com/rapidsai/cudf

; ^0 H/ t( S7 m0 i

雷锋网雷锋网

1 s2 r- A( p. i; a 7 ~, x4 ^, H! u; w/ K3 u! i5 p% L & A( Y* o0 ?$ q& C( e' i: @! a( U' H! r+ q- r 9 v5 `! z' e& n. D& N# L
( M }( O3 G" J u' ]$ P6 i
. M6 M5 B, m: f9 u( D" S
) F3 V) V& @/ h" t( ~: Y( _ 9 T7 t+ ~, V: n+ ~5 E. N& C' w& [% z; `) V- N' M * [- p8 ^; E- E/ ^0 S$ X/ i L; d/ X. E1 k
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
礼子
活跃在2026-4-7
快速回复 返回顶部 返回列表