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

[复制链接]
) b% R' p9 m! w' o2 T; i' z
; S6 m0 [) @% U& @- M
. u( C. y9 U% W2 w5 J0 @ f
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
! Q" N- r5 e. r& _0 t$ e" V& _2 n* f4 Q
) l1 \- q0 H" e$ N' N
9 n4 N4 Z# ~" [- u6 G' j8 v
4 E# F5 J) W2 C4 G( h

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

5 t" @! u/ K W" @0 Q+ P- z6 H

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

* U: x; w! D% p8 p* O0 f6 P# y9 j3 ]

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

0 z! O! I6 w H- t% d) `( }4 o

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

2 G7 z a- S8 K

import cudf, io, requests

& m5 {) G' C0 D# k

from io import StringIO

" N2 j) K+ w/ M& l2 b1 A) B

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

% q% V# X9 Q! _ 6 J* p! N7 r, u) U9 n9 n L- L! j

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

; k: I0 f! V3 v

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 : t. d" Z M7 l6 | ' h( @" G- v9 Y6 b* L

# display average tip by dining party size

6 c/ k1 O0 p3 Z9 x1 b) X! X1 ?* I

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

6 x% a& H& [- a! n0 C8 \, Z- f1 E$ H$ X% R+ g9 ?) i

得到的输出为:

3 Y$ p5 a/ ]$ S u" s. W# W9 H8 O

size

; O, v! Y% C$ @' f / b; j9 u, e, Z- T. u9 l# i* r

1    21.729201548727808

8 F" _# ^' B8 n$ {7 l1 D$ v @8 }! B- _: G

2    16.571919173482897

0 g& w/ A3 R* r+ k* v+ B4 a 6 h& Z$ \& y* Q

3    15.215685473711837

1 A( L, f! n4 F# f4 s4 v + \7 o. @8 a1 S

4    14.594900639351332

- a0 n! F1 |/ x" {2 y* m 6 U, y" d, c3 z, @- `3 ]. F0 y

5    14.149548965142023

+ z. T7 u# Q+ \! k2 @ ( N3 ]) J: {; C+ o) e& U3 J1 E9 N

6    15.622920072028379

4 K* L. d K6 r" F) D6 @ 3 H1 G3 x$ f# I* m

Name: tip_percentage, dtype: float64

3 |, a+ k9 g% I# `1 H : V Q7 K8 \" S1 u& {

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

% ]5 g' m. M |- `% d+ w* L

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

, }# g3 j+ S7 c/ Z# V% Z8 Y

安装

; l9 L2 W2 f9 o& v6 p9 ?

conda

* U$ `/ f) o+ n I; J% t) w

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

* p' ? ~# A9 I k4 f2 L: G & K( i7 Q7 |5 |

# for CUDA 9.2

! G) K) i. G! V7 ]0 f. G

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 7 F+ ^. W( m) x# S( ^2 R {6 g4 i) l( `6 J: [

# or, for CUDA 10.0

" R' A8 D# _9 o0 N, @

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

5 y: \1 V$ V- ~3 B6 o

   cudf=0.6 python=3.6 cudatoolkit=10.0

' C+ B9 A& X' G0 x 6 v' z0 ?- w) h6 f/ V0 ?! {# _

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

3 i: ?$ _! k5 ^4 ^/ x$ o- \

Pip

' {5 `2 |& |2 }+ S

cuDF 也可以用 PyPi 安装。

. w6 S3 {5 r P2 x' ]6 ]9 P1 [3 e6 y $ P7 D' O& ~7 W [

# for CUDA 9.2

0 E" D1 n T1 p( w3 |9 [; T

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

. R4 q8 F0 `, T' y1 N; B- `. B W/ r: q3 z; l; t: p2 m

# or, for CUDA 10.0

& D/ v& [3 G, l! [! t

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

, \/ C3 n+ X# _# x8 Z ; I$ Y, n( w, C

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

. x/ T5 H( j- E

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

+ a* T! ] V5 V7 x" W% A3 j

雷锋网雷锋网

8 {* K; g! x9 \3 ?; f" K1 f: R( l 0 h8 R/ T- n1 s/ y9 ] l) n) X& d2 O, q . U0 X- Q, K ]3 _* \( T' _
7 l- p% M4 k O
`+ k7 u7 a( B9 U9 @; K
, x* j9 {5 N6 T, V; P( i1 R" o; x- ^$ O! _2 G% ?3 V2 {6 I9 I) g ; L* E: r7 T! D% s& p ]9 h / {$ U/ W3 i- z- s8 x 2 D; H+ W' F* N( Z# U+ x; G, ?
回复

举报 使用道具

相关帖子

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