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

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

[复制链接]
. a/ j, _ ^+ H
" x4 K( S1 [! }. S; x0 y, w
( ?* [2 I w- \$ E6 ~; z6 Z
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
2 }% f) [+ i( n) E
) i {; |& D& \- ]
! |* x s' d6 o) B, o4 y
0 d; }, d6 o2 a$ E

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

s0 E W/ @. U& s( z

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

- h3 w T7 i" e

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

0 G; l) J3 K! \- S0 v, z

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

) }$ Q/ S7 B, Z- q" h

import cudf, io, requests

5 m$ ]5 e# a( p% Z; d& @4 m+ t8 A# U

from io import StringIO

! \' w3 h/ |) x2 D

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

2 d! Q. k3 ?7 m# X! V4 @2 o" B . r. v5 k# M' O1 h& J9 u9 l; o6 j1 u

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

' \3 E3 _$ l! o# r$ ^. b b

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 ! D) W$ X4 J% Y9 _3 f8 i6 _" u + @) x. J3 G4 X; o: {

# display average tip by dining party size

2 C0 P3 q( |4 R( K

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

/ x0 l4 Z- N' `1 v" b/ j% G , L5 w! P* H8 ^6 k) a0 }5 [* _

得到的输出为:

& o- g1 w& H9 o% g; i; d # g4 w2 r8 u( e2 n

size

; N; ?1 I" M* Z9 Q3 d; C$ I& P: { # ~+ u4 y( a& T& A/ b; ~. v

1    21.729201548727808

0 Z( _* Q0 J4 U1 f8 B( P; M. _2 X: k$ o" `# E7 e+ p

2    16.571919173482897

s# R; C. n3 L. S6 h 3 _7 k5 K7 t( f

3    15.215685473711837

3 J- Y% @0 }1 _2 W% y4 _3 n% b" C

4    14.594900639351332

" `2 {6 Y7 R& r O: | S: R5 H( a; y v( a s6 Q$ I

5    14.149548965142023

9 B! D2 j& M' ~. S2 G. ? * E4 a# ~) W p* I! t7 R$ r

6    15.622920072028379

1 R7 ?. ` S' ]% H" u8 g! c7 b4 \' |5 E1 ~, P# B: s

Name: tip_percentage, dtype: float64

6 A$ [6 R1 X6 ?3 {$ y / W, V& z: b9 n: d: a0 z5 s2 F

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

8 D8 G# K! H" B

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

1 L7 K9 T3 K7 g+ j) C/ I

安装

8 |! C! _# e! X/ L9 p4 V

conda

0 F8 w: ^8 e, f/ T. E9 P

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

& S2 N8 i' R. B& R# ?/ Y% k & o3 }, e W5 g- V

# for CUDA 9.2

y' h: g5 ?( N

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 & m4 R: V6 T% i) ^1 m ; I' i; A" [. J

# or, for CUDA 10.0

0 s3 B# _+ ^8 B0 ~

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

( p8 I. i/ Q {. `% y

   cudf=0.6 python=3.6 cudatoolkit=10.0

2 b/ \& U7 p5 J$ n; e 8 E6 d0 L F- A, |

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

1 X1 o. s! s# i2 @5 b+ W) I& j

Pip

0 c1 H" n+ d* {5 n/ w6 x- Q. ~

cuDF 也可以用 PyPi 安装。

* M4 f& d2 U& E' ]% _' _% C! X$ _8 n7 y, d3 ^" u7 I' w1 R% Q

# for CUDA 9.2

; f0 Y- ~: ^# n }4 ~

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

6 s8 [3 z9 u: h4 M" ^ # a: P* C5 Q. _/ c8 Y( r; l9 K# d

# or, for CUDA 10.0

$ _7 i5 q( e5 V3 B0 h5 y; N

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

% A$ }( y* A5 Y ^0 Z" m& T3 t, Z9 m; B

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

/ j: [" a' b8 y/ Z+ k

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

+ I f! `3 V5 \% I# t' o$ I- p1 P

雷锋网雷锋网

8 K. Y0 t, I) R m6 R9 k! {6 h ! L0 e) T) O- H $ _1 t7 z; w/ c# Z5 a' V * {/ y1 q0 c" g0 U) J+ s W8 N& t 9 a4 d, i) R$ B
$ u! z4 E A& m* {" e( N6 d
! D' u) ], K( r
9 f n8 F; M; L3 y, @1 i, }9 u5 ?1 F) Q7 v. X4 ~4 m3 B7 Q1 w / n. H( V0 ]# _; n9 h 3 A: R' N) a' L$ H$ W, I1 H: n- Q0 N8 Q8 @5 {2 r
回复

举报 使用道具

相关帖子

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