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

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

[复制链接]
0 w W! d: w1 ]: `; J
b5 H% i {8 M/ E% Z! ~! G8 X
B4 c# {7 w! K9 W
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
& w' Y. A( X5 `3 Z6 H( n+ F/ T( H0 i
( S! ~8 v: K% }- M" f! V2 S' d
- {7 J' P q: B+ L8 J0 r
4 }( i- q$ V. L( L# m1 U

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

4 p( \/ m6 Y. w1 r

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

( p9 p( W2 u. J

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

n0 `; N. _) ~3 _. x0 J

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

$ s. t1 ]9 z* K

import cudf, io, requests

4 _& p0 f$ E* ]: d2 k4 Q

from io import StringIO

* n6 R8 Q* m( a* Q

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

, Y n" B, r6 o & s) [1 M1 I) S/ x8 |

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

& z- H& M. U* Z- e( c5 m

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 & R4 p4 I" J- N; K+ ~' _ $ B7 L5 v: h* v, c. b$ }

# display average tip by dining party size

% N3 G* ]$ X' A+ ^* g$ Q% J) \

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

# Y9 H6 j' n7 v" o # d& R$ ]5 ~ s! e$ S

得到的输出为:

' k$ Z, V8 E/ l: K! D4 d 4 `8 g% P, ^0 [

size

( N4 i) U% N/ K; N h / }" V/ t5 }2 X

1    21.729201548727808

/ P* T& i! |6 K+ S% ]# | " U( S( R* Q/ H- }: X

2    16.571919173482897

4 x4 X6 u) @3 U+ [ y 9 i) {& C$ @4 O2 z- P3 g S

3    15.215685473711837

n4 `: B, M2 a # r; Y+ n! ^/ I

4    14.594900639351332

4 t% a1 v2 a. H! P# D4 P3 E! l6 [) F3 o2 p" o

5    14.149548965142023

" w( U9 @* s; Y) w }, p8 f ' \$ X( n7 B1 {5 W' Z

6    15.622920072028379

: u, i& E z3 }# T1 F$ P9 P, K# X1 D8 Q! j6 w' s

Name: tip_percentage, dtype: float64

+ _- p: U) f3 S" u( Z* Y6 g & y7 a h4 I. G. l: M' T% Q) a# `* A

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

, h J) X, M& q9 _

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

3 j; A+ F2 U5 [* j8 N# }9 D8 X

安装

! }. A5 Y: f8 O% U8 w; u2 Q5 ]

conda

4 B2 ^. J) [4 D- F+ C

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

( O2 b) M' y: ]' W 8 n6 M2 D4 O4 P' [& c1 C2 d0 _

# for CUDA 9.2

* O& U3 s8 y3 v7 q

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 9 j; M @' _$ g+ w( \! W 2 n0 ]' P; [* C" {8 B

# or, for CUDA 10.0

4 I" _$ d+ P" n" d |

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

% C: ^' t8 L7 j! |1 ]

   cudf=0.6 python=3.6 cudatoolkit=10.0

2 ^8 S; [( r4 o+ s6 s+ _ K# ^0 x0 R4 a: S' R C6 h

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

5 I* @2 I$ F1 t" C. p# ?& R8 X

Pip

& t4 E4 f* I3 ^: L# Y$ K/ K

cuDF 也可以用 PyPi 安装。

8 P! n- p. O: w8 y, H 7 n" j( A. v) k2 G" t+ {3 y& j: U

# for CUDA 9.2

! V- f1 W, t0 ]

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

3 ^8 E5 g$ f8 S \# I$ W : l% S, r% M- N2 R. n, Y

# or, for CUDA 10.0

/ @; ~) x1 _' `4 _+ Z3 n7 G @: x) ?

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

( K% D0 s+ A4 l7 G5 J7 Q * Q' p" [6 i' b# _' ~

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

' U1 _6 \5 t5 i% n1 R" z* C

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

- x6 ~; e" A1 W. G' ~

雷锋网雷锋网

+ v# Z- i5 P& [8 E c, t8 `5 r ) b, {- H6 I& x* K3 |" M6 g V; U6 Q X5 ^- f; M/ F8 r " V- w% [1 z) n1 |7 |; g3 ^; R- o* \ 0 Z1 L+ m: q8 B5 @! |8 ~
/ ^1 E3 @. H( v z
# U: ]5 f% ^1 ?% A0 p8 S! k- \3 I
; P8 h' c0 r. P7 ?4 h2 C) f1 w9 O( T ) P& ?) \2 ~. u: ^- M' y( N# p. V; [" h# ^ 4 H: Q3 x9 Q \# O6 x1 ], g3 w0 g% ` , ]1 _- { X/ [) O7 {7 R6 u
回复

举报 使用道具

相关帖子

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