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

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

[复制链接]
) \4 z4 N6 p# Y1 i& M4 p
9 ?9 M- g. G" J: u* l
- p: O9 e# S9 B
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
- y7 b/ U: k* g2 N
; }( `9 z9 y+ O, W% x
5 o- D8 T+ g5 \2 |& G3 |
0 E) N3 ^* @8 I }2 ^

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

6 d8 O& j1 {( `8 h

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

. Z# t( h# q, K# G6 i

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

! R( r# _" F( E% f- S

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

2 i1 h+ X+ Z# Z1 U, p& v3 M

import cudf, io, requests

+ l7 t( }5 G+ W. |% x1 b7 E) d

from io import StringIO

0 H0 Z- K) Z# |" `

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

1 r5 M3 H5 k, |( S8 ? H7 i k& s _8 _- d7 X9 _6 @# M; @

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

& c% m1 _1 H4 X" _) g" e/ x

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 + ]1 n6 h8 N- y( u) B" t, S8 x: l% z+ Z& D$ z9 o! w

# display average tip by dining party size

3 h/ e. R$ N3 R- S4 K3 y+ J

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

. ~2 |, d2 h) \5 n$ A - I# s. S, q, X2 T. m( \

得到的输出为:

: W! ]0 i5 F" ^. t : ~ U& R: |. z: [

size

& t" D+ |3 F3 Z# r 6 P0 P8 p& ?, x

1    21.729201548727808

. ^* N0 q$ g. V/ U6 S- { 6 t$ u3 g) b1 n. j, B' D% O" U

2    16.571919173482897

+ l) j. |6 |! R2 F' a+ ?, @ 1 M4 H9 U; e' }$ {! C& p

3    15.215685473711837

0 _* B8 y A2 |* C. `3 { 0 b& ^9 E. k( Q2 E& x+ Z

4    14.594900639351332

2 O, m# Y0 D9 y" G/ x, r: P M. b9 B6 @- w5 N$ C6 b: P

5    14.149548965142023

u+ o1 m& a# Q( J5 _+ e 2 C! {, M" C( M) @3 c+ [; |' h

6    15.622920072028379

: [6 B5 G5 ^7 K+ i4 ? : F1 ^$ a9 l. b0 i/ k2 n, [

Name: tip_percentage, dtype: float64

. ]+ B& x+ z. i+ z/ E _& z $ j2 |3 P* K' w, X

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

2 a k6 f& r2 W! w; `

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

7 R" [) L& W) W5 d8 H

安装

5 Q9 O$ x, s. W. j4 L- }

conda

# @! O2 S% h: U, |- j0 f

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

6 A+ U7 f2 g8 X' W& `2 N 4 r7 _" P+ ~6 [& P4 \1 _, p6 }

# for CUDA 9.2

% a: }+ t' J! {$ p

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

   cudf=0.6 python=3.6 cudatoolkit=9.2/ ~2 e# P# `) \ d) j$ E& E % h3 |; T1 J' [" U, A5 K! k

# or, for CUDA 10.0

8 z1 z. ^3 S# P5 e

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

9 V- ?) m! v, q5 b" w% c, d c

   cudf=0.6 python=3.6 cudatoolkit=10.0

7 E* s( U! A r1 ~1 m7 i X B/ e, D: t- f5 R2 y# O

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

/ W5 \+ O9 \) F! C0 C: P

Pip

% H- C1 X" ]% d+ G1 M

cuDF 也可以用 PyPi 安装。

; ]' L5 |1 m! e" n9 q$ V7 ~6 Z1 L # a& ^5 E: u/ W5 P& ]

# for CUDA 9.2

* s3 S# i% h r( f

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

7 Y" R, w0 X8 b1 v" m+ o# r ; n P3 P2 J# q6 X

# or, for CUDA 10.0

6 H$ k8 q3 ~* ^+ V* g: `3 P% V/ Y

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

6 E! L% U4 Q* _3 t# N. O& `0 W& z \: C: g! {# a+ I0 h6 m

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

2 t- R- b5 |: e

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

1 X/ Z9 y/ `" a3 a7 d% \" g" v

雷锋网雷锋网

6 O, h9 m! n6 l% ~, ^6 _* G' }" a+ ]- D. S7 o ; [9 C2 c+ q# e! ?, { 3 o, ~5 Q+ l( ]# G & m" a7 ^2 |, s" ?2 \5 r
. ^5 h; [7 C0 G2 V
I$ t: ?1 c+ b& b: z! Y
& j$ K0 a/ Z0 N, w: K4 |8 \: g 2 _/ c$ M- i% ~' T( i 4 P3 d& b2 m. I9 p/ V1 b; X0 A' z! \+ ~6 R4 v / q# u8 _5 U2 @5 p, @2 O8 n
回复

举报 使用道具

相关帖子

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