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

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

[复制链接]
" O( ^8 @7 d$ n
6 \0 C# |/ M& Z, ]- Z
/ e$ a- ~; R6 g2 s7 J1 t( y& o
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
$ Q6 j8 W6 e, ]
3 A0 }) J! ?, G W- m
& R+ p& i9 N' j. a% z$ |
3 R& @8 y3 Z% v' h: z; l

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

! Z7 k9 m" _# k

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

& I2 c1 q! ^% S

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

/ @5 ]) e- w, j

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

' ?" I1 `) b! m9 [6 Y

import cudf, io, requests

* t4 {. u& O" p% y

from io import StringIO

4 M0 N/ W9 t- ~+ G$ F) K

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

( ]7 v( K4 ~3 y3 L, A! R& @/ b8 f8 [# w

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

4 p" O3 J6 r, L. Y: Z% z8 f/ \' `

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 ) y, ^- O+ w, w2 n! t' `. s / |' X% |6 n$ a, f

# display average tip by dining party size

8 z# b& |3 o0 K {; v! o2 b9 `" v

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

1 N- ^4 T5 z x- @2 B j" p3 {$ a" w , V# h' ]) I. D3 x

得到的输出为:

9 _9 B% u' u( ]; t/ ^( o2 E: r$ U. d8 O7 N9 M( ~9 p( Q, X/ d

size

8 K3 ?5 u0 p9 Y1 C w % |% _2 {* Y) Z" v5 N( f; l( g

1    21.729201548727808

0 ^% u# Y6 I$ {5 _6 Y: ^ 9 T& S1 I, U6 n$ H' R$ R- D

2    16.571919173482897

' g; G; Q3 c5 F; {2 M 8 E/ W" a1 E/ M' H7 t, r8 G F7 ~6 y- L

3    15.215685473711837

1 M1 X$ i- u1 Z" Q& _! F # s) i, f$ v/ U. B+ ?

4    14.594900639351332

3 [ P9 F4 R2 }$ u0 b . U! Q8 ]4 |/ T0 j

5    14.149548965142023

8 F( K% O: t# b5 W7 Y& h6 ?# P

6    15.622920072028379

, M, e. \4 {, ~ ) o, X j+ C1 W

Name: tip_percentage, dtype: float64

6 x9 O0 C) C$ |& U& l* { f* c ; O' t( H7 s* r q

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

3 y q3 Y4 S$ U6 n3 K

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

1 S* l7 W; B% q5 s3 j

安装

5 M- Y0 P9 I5 R( o9 d- M

conda

7 [* t6 L: L E' H; C! a2 ~# d3 A

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

& l# g! m- |! ` + x% l7 i" H& W4 ~7 i9 p5 Y

# for CUDA 9.2

& Z; ?, Q7 a: N* v

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 2 J; w& H: }6 u$ A8 Y9 B6 Q0 }% T+ g2 F

# or, for CUDA 10.0

* W* X: Y& I7 \5 A- ]

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

: Q% V G( X$ N# U* @: v

   cudf=0.6 python=3.6 cudatoolkit=10.0

; e% `# J( {/ }6 K1 h7 ~* a; W( T# d6 H& A/ }5 {& b6 H

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

Y2 W( g. z6 q; p6 x1 S5 g Q

Pip

5 Z7 e1 h- ]5 e( k& R0 Y& U, T) i; U6 D

cuDF 也可以用 PyPi 安装。

r$ N* R7 m) R. x! k ( C, D6 ^$ w' v

# for CUDA 9.2

9 q( n% ^. ]) H+ g

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

4 S% f$ J- Q8 X4 @9 w5 K8 l , ^) `+ U; W. j. j$ O

# or, for CUDA 10.0

* ?& H2 h& B4 k/ Q

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

5 s0 t/ u( C" D/ P 4 q3 g. k' q( ^' Q

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

0 e1 r. }4 @7 o, X& h+ T

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

' r/ D7 }9 O7 I# x$ j* a

雷锋网雷锋网

2 A; T' f/ Y% L5 c Q( t1 X) G7 V A : x% `7 z' e3 l8 g1 ^ & M+ e7 O, }/ g ( I* ]( }# q% ~* z; u! c # }8 J4 m' ~" E9 x% O6 n( `" y
7 k! _; u- P; R0 ?) R! I h) i; Q
9 a$ V% \+ }/ L9 @0 I: a
6 _+ |, p- k! h , K. l' a( h* Z& J3 G& L1 K5 p: J, m2 s8 e 8 s8 k/ B/ z0 q/ _$ |- o8 T$ V* v; h% f2 m; c; n$ _
回复

举报 使用道具

相关帖子

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