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

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

[复制链接]
1 v* y& Z7 S4 F* F. f/ v9 O
& J! R# a9 @0 q U+ b! j
% r( \% f' w9 H- e$ f, K. G
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
, D2 u' M; F4 ^' u
2 _% c0 d6 v6 i" K
: @8 \2 ~% n( l/ A3 t& h, w' E
0 ]" Y" z: A0 F2 d, y

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

2 {+ f6 U# | }9 t( J

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

) M: o: c% } e# q5 g, p$ b( c

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

0 Q. ^8 Y) z7 L& D$ J g7 P

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

4 ]2 g! O, ]) o( b

import cudf, io, requests

" K% t; ?' ]/ }% n

from io import StringIO

$ B5 U% e! N, Z

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

$ U: y: L; n5 u2 n0 f) U5 C , e) M# [4 W) V2 x0 x/ G

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

; W" k( ?6 _8 t7 { r

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100, H; Q( Z$ b/ O0 ? , }4 ?$ R6 Z; K- @; ^% k

# display average tip by dining party size

! x& i! z/ m2 G, ^0 I4 R( b! R: h

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

n" A7 j: s/ e' U) U 1 v- J4 W" \. b& g1 ^' I2 x

得到的输出为:

9 z% l( y; n3 i# u( g % h0 L. e6 C, q2 p6 R' B+ ^& J

size

* n, r- c- M; H9 b0 w3 y ) L% ^8 [' a0 b1 K0 k0 J& i# q8 V

1    21.729201548727808

+ S# |+ B* A0 Y% R7 u5 V5 Q 4 |6 I+ r3 e9 q4 _: |

2    16.571919173482897

6 |# i8 g/ [8 j. ?# }7 O$ W / \- c; {0 q8 V5 m

3    15.215685473711837

* d% _6 r+ N7 r8 w6 D. x 2 w, v* I+ w2 i$ N. u

4    14.594900639351332

/ V% ]9 E" D6 N% f7 E8 c7 N& d ! Y3 o- I K9 c2 n6 `& Y8 f3 w

5    14.149548965142023

6 }9 m8 u$ L0 i ( L7 f+ \5 x; g" m8 j, O* H9 \' e T

6    15.622920072028379

% I$ R. N1 J) w& N$ H; j , e3 O: E( M8 M, L' A

Name: tip_percentage, dtype: float64

- ?. N5 p- I$ `# H' t/ g 0 }( h9 L3 Q2 P% l) [

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

6 B& v3 m1 H. ]6 g; c

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

k/ p4 n0 k) ~7 K% t: w, B6 d

安装

$ P+ w6 \, c/ k# g0 a

conda

9 Q' F7 S2 C) F" d! h' o( F% R" y

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

" T6 C* C) X N: E/ @% I4 _ : H% a4 F+ F# T' J& y" H' w

# for CUDA 9.2

! D4 L! q6 N0 t5 x" G

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

   cudf=0.6 python=3.6 cudatoolkit=9.2, a0 s- F9 L1 W9 U7 q! K( `% t& Z % W: n2 z. F& j1 Q% f% R

# or, for CUDA 10.0

+ z# ^- F; |8 K

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

% o6 D. o& L v8 p

   cudf=0.6 python=3.6 cudatoolkit=10.0

: [; ?4 j4 I1 y: _& A / x5 T7 ^% ~7 L2 z& f6 T* `, B

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

) s+ U$ g d) F& A6 D

Pip

2 Q4 y2 V2 u2 {: `

cuDF 也可以用 PyPi 安装。

. ~+ v( p6 J- q! u # g9 k! b/ Z5 `0 x$ m. E4 E% m. j

# for CUDA 9.2

9 m6 B* k$ n) L* P

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

, l- i: ^. t1 c" x3 L9 Z 8 ?$ r" U# c% \4 W% H. m# W7 C

# or, for CUDA 10.0

! y: }% u4 r; x, H- A( _- B

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

. o, C9 O% r; r4 G % A+ b$ K9 g" Q2 A

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

2 z: |" e8 t3 O; N B

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

1 a [6 E. t$ c: [, J

雷锋网雷锋网

. m4 X( b3 F$ x! U7 [) E* _ ; c6 d( I+ f) P, t$ _3 F/ g. w+ R0 t . T0 |% L% L4 a1 r. {7 \3 s7 r* V5 s * Y! ?. ?$ I4 f& s0 y$ i
8 @* P: x4 X- G" {* h8 n
9 Q# f: o/ G7 R1 v& x
! V$ v- k& G" G 5 ?' o: N* G ? ' x8 h1 C: m+ z+ y1 Z9 c9 p 7 T5 w( y( l. Z4 F( o & o, ], W& ^8 s/ ~- l# ^* M
回复

举报 使用道具

相关帖子

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