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

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

[复制链接]
* A# c6 Y- {$ u3 l" [' y0 v
a; r( ~* y% \, N2 _ \& \
' Z0 e+ ]2 K# F# @2 b
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
- |; K& \6 o! g: f) d4 U
9 g2 E# J6 S, T6 [
% r8 S+ ]) G7 ~8 o
' ^* p$ K# d0 z9 C7 q$ r

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

$ F2 @, F: N6 n3 ~: `- o

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

+ h7 X0 O+ C$ C

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

" k. _1 ~/ P, }3 ?/ m4 d% D

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

9 `' z& y7 T1 W y, p9 z3 D, E

import cudf, io, requests

) H& E! e" e- u% c; f4 j* s( I& } N

from io import StringIO

& ]/ B* m2 h5 ]$ u

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

2 F# M* J0 K: e, m- @6 n. p ~3 {) W! `2 d

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

0 V. o! ~5 f O8 \" _$ @

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 " p- D8 U: g" T! {: a1 M# u# N3 F% r* A" U6 c

# display average tip by dining party size

1 C4 o( Y/ K3 ~8 ~

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

/ }( h! d$ }1 ~6 R0 S/ L# F8 {8 a# \' r6 a7 K- s5 p# ?

得到的输出为:

- ]; b( \3 A+ e% K 9 M9 S6 V |" \" E% T

size

+ B4 ]( ?3 u. w3 u' x* s: f ! T, ]6 `) U6 `

1    21.729201548727808

/ R% M* S! j0 y1 r7 b* M+ x- C) f

2    16.571919173482897

' t6 {% k, o1 R% x/ [ * @6 V+ W) ~( p0 M& H$ B, x4 v

3    15.215685473711837

2 s) ]+ x, W# a4 l# w0 o 7 Z$ K$ d# c. Q; [0 k

4    14.594900639351332

) s, p7 u% E& i. D) d / I% |: I" [. G( u

5    14.149548965142023

) N' F( r% J" R: v8 G; U- m4 _3 a# W; n2 @( U% p ^, H

6    15.622920072028379

7 A0 O9 ^4 n- }$ C/ `5 s& E' P) l" {' X# B$ ] O

Name: tip_percentage, dtype: float64

- v+ m$ H8 I* x y4 v- S5 j5 | % M1 g* M3 S( @- k2 o( C

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

& \. h& b% `5 \5 H/ e+ g: ~

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

. K& j+ {! V8 B3 V) J% |, c: |

安装

1 T$ ^5 A5 k, R9 l) z

conda

, ^2 R. Q0 ^7 c

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

, @, [ }9 E; G ) U7 {4 J9 T5 F) K) Z4 H

# for CUDA 9.2

5 Y v7 R3 |1 C) t

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 \; T; S* Y7 r# ]5 \) [6 h: C! s) Q$ L* v& @$ b

# or, for CUDA 10.0

- R3 B+ w W/ Q

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

! q* d: Z8 |% M, ]% T# L4 ]

   cudf=0.6 python=3.6 cudatoolkit=10.0

% j9 a6 w5 R- Z1 F) D$ [' h7 ]8 b2 q ; q5 a' R5 T! p h9 ?! ]& B

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

2 }. M9 H! _' T, z2 }0 ]6 A: m6 F) e

Pip

* Y% ]5 j1 R: B" ~8 N% a# l& J

cuDF 也可以用 PyPi 安装。

3 B8 h! T/ F! C5 f f4 O, X+ `' k

# for CUDA 9.2

$ `5 D- a4 I2 e

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

9 I' m" D; q1 T$ @0 y$ y : H2 [' U! e' g3 N' m- ~

# or, for CUDA 10.0

! E* ~; O0 R7 r- b8 J F9 d

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

! j! d- l1 k; B2 V$ b6 \) J5 ]. i# c$ \! n

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

, i P. c7 m5 t; |- X9 r

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

& P/ U! @6 |: k) _

雷锋网雷锋网

: G/ H% H T! r8 k$ O8 W& T( f3 B# Y: O4 k1 i# |* S # J. W& n! z6 Z1 ~ * l7 y4 t& e& F/ \; A7 i , t5 ^1 ~1 L0 ^, ?4 t: x( C
/ N$ E7 \, G" G1 y# j
- h) @6 z- o+ I
9 }( A! f# {# j- f8 m5 N! [( p1 D 7 O) d) \# _2 N, C4 q f* l ( W& L! A1 l( k; F9 Y! b J" Y6 m& h) ?5 o& A- D l 4 R& o! v& h) a0 c( E
回复

举报 使用道具

相关帖子

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