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

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

[复制链接]
L- c2 X" v" S/ H& F5 R
; s4 @! d0 b) x
8 c# [- m3 t, d' T
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
: k1 r; o3 ?5 s
1 |( d# J* _9 N1 D
" u( p- h Y; I) J0 _: _0 h; E
1 m1 X8 D' R& Y! d3 O5 G

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

+ B9 ~% @$ G. F) ~. a( }3 e/ C

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

+ C+ _: t7 `" D

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

* G5 g. v7 S. s( C

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

! j3 h& ^1 K, w h

import cudf, io, requests

* X( ]! T( Z% n8 P' v

from io import StringIO

0 @, h' |' O* [# \

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

! m1 S& D" a7 y' E* n7 p* x( M ' _4 ?6 O- w0 R% _% C

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

9 b. \8 e( U6 z& n4 o2 j+ p

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1001 l. ~' ^/ E v$ V/ n* D/ J p+ ? 2 K/ a7 r* }: p* w% L& m

# display average tip by dining party size

/ k$ I5 q/ K+ ^

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

0 s: R7 ]* S9 _- [4 i ( {2 n ?! w; W: f8 E1 w

得到的输出为:

' c/ O$ e" N ?: P c$ R / B* E7 n0 {6 k: o

size

: K% x4 b( }! E7 P U 3 c3 C: T5 c# ^2 @7 C# N

1    21.729201548727808

! R9 _9 B( K# G- W' Q3 m* D. V z, [ 8 F, O5 V2 T4 N

2    16.571919173482897

; M5 c; Z1 h: ?1 w0 M + f7 {% L- C, v, G4 j6 t! X% S

3    15.215685473711837

e* n* m% ^# s+ t* j2 p- O( L9 B/ z1 F' c

4    14.594900639351332

* k0 a' ]( l# b) N- C: m1 `, | 1 J! G! b9 i1 j \% d5 Y9 `, ~$ i

5    14.149548965142023

: t% V9 \& C0 M; I7 ^ F4 M0 W& d. o" Y7 v. J

6    15.622920072028379

' }! s% L- |; ~* k ) N+ [. U- b5 J7 [: s3 T) _0 @3 V

Name: tip_percentage, dtype: float64

* [7 h+ x! r, b* x7 J# [: W- F+ B, r5 }: C; W+ T6 ~

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

- t1 c% T( f+ ], C# L

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

! a* M1 }% ]& u+ @! X1 D4 m

安装

/ e- ?+ L; ~0 A& w: I& ^/ q

conda

; E0 H: l/ S$ P1 O! _/ X

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

% E/ h8 F4 w" Q . _4 N6 v, z7 P

# for CUDA 9.2

* g( X4 ?, v7 Q4 d# ~1 b5 ?+ m

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 ; Z* [, p! ~. E0 K. W" ~) c# D" D. H: Y9 w) V. }% f; R

# or, for CUDA 10.0

- w) m+ N( [6 v+ N% m, {

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

9 S T v; f* a/ C/ a% F

   cudf=0.6 python=3.6 cudatoolkit=10.0

( i' v( S( ^) h4 k& t- m. R 6 \% j, h1 a. J* u& n# y

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

1 D7 n `/ d3 d) g; A$ A( Y0 ]. ~

Pip

- \2 R/ l# q8 Q/ Z: |; K

cuDF 也可以用 PyPi 安装。

* B6 h: g; X9 v" r 3 I0 v9 ?) P8 c) @( X9 L7 f

# for CUDA 9.2

' }4 ^/ e7 O; ^& p

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

0 b; q: m5 m8 w! G K - z" z L& ~6 A h3 j

# or, for CUDA 10.0

8 o3 u+ S3 ]+ g- _: `1 ]* U/ s

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

' @& S/ e1 N1 i% G5 y6 }( Z+ T$ ?" s 9 P% N5 F6 t l6 l1 w0 v9 t

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

' Y- P/ S! D' _' H/ I8 C

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

" m8 `5 [5 M$ B) o- f

雷锋网雷锋网

0 l" U, R V7 I . m, g" Q/ M2 N & {" I9 ~+ a5 |8 x* ? " q. q5 P3 x6 v2 h0 {( A 6 o7 L2 W- E, @5 [$ A2 V
- h. t5 U) \2 d& q$ C. D3 N8 I8 ~9 w* ]
7 S, S* m) F( i1 V1 r$ c8 u& v
# s! y) H h# v) l4 q9 @; q - u; Q l# N. i8 @ v; {3 ^0 W' x $ E# Y9 V9 X( w0 ]- C! z' d) B9 V; b4 t( Z2 ]. }9 w
回复

举报 使用道具

相关帖子

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