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

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

[复制链接]
. k$ k3 } D- V6 U
8 M# m" |' `) F j& p. \& x# e/ {1 J
; E7 l8 R$ P. B3 Z* s( g
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
; O& h: P. r0 h& F: ^4 c! d
, M. u" W6 i# N3 x. p6 C8 S" L
m9 z6 V. X2 \, ]% v
0 m6 Q8 g7 S5 K' p! f: U5 y

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

& c9 t5 r% k# N

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

% i" y7 e. l9 D

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

4 R" m1 a h5 Z0 |

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

1 j; v$ z7 H6 ]6 `0 S: G! Q

import cudf, io, requests

. b0 B# D0 J! p! H: r; U" ^6 o

from io import StringIO

7 w: @; z- b5 D

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

) Z) H" c* @ r5 G M% K / d7 `( h2 B/ y! W/ w. Z; B$ j0 o

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

! `3 P' L- z0 g* k0 m2 ]! z' ?- U- q

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100/ I6 k0 x0 ~7 Y; G: B$ |6 g2 E , J. d/ H! D, w* J6 E& x8 K- s

# display average tip by dining party size

; L$ S& \3 m" f' @4 g

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

! b' t7 N4 [( R1 W" _ 8 L+ F* K x/ w4 Q/ B; C

得到的输出为:

+ Q6 d1 ]! k8 [( [8 i 4 |3 F; J. X5 H% Q

size

& J) t: } Z6 U9 ]! f; p0 m1 E 4 t% q! _, U7 b9 p+ u3 j

1    21.729201548727808

: F. C2 q. o5 x$ P& S# b5 d' A5 P% H . Y/ X8 J! n/ h5 s7 d

2    16.571919173482897

+ q3 M q& v+ g6 r/ M: V: t ; ~- K. x9 P" l' F+ a0 E0 B+ Y

3    15.215685473711837

4 C' v# W$ M4 P7 }/ ]# y 9 ~. A+ g# j0 n1 G' c

4    14.594900639351332

9 @' ?! y4 F3 S3 _! A2 V ! a2 x# U \! y I! |

5    14.149548965142023

0 F+ P$ S3 @( s) | - I# v) w$ ] V9 |& `

6    15.622920072028379

% f) A* M& n! a4 w$ x& L 1 m. t# p& F1 }2 A, H& ~ G: {3 k

Name: tip_percentage, dtype: float64

: }' l- A. I) f& x" q# m: h! x : T: o7 L7 z5 r

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

. j4 s' Z- w" F- z' ]

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

% W2 B# a. K. j) l; R1 J. B' g$ J0 N

安装

, M$ v$ v5 D; x, {- M9 R) g8 T

conda

' [4 z$ F9 X/ }6 [

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

+ }1 Z# X8 [: H8 a+ [- v " Q. g, Q2 u" B7 M7 G

# for CUDA 9.2

: D4 r# A: _+ Q3 H( j: o0 l

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

   cudf=0.6 python=3.6 cudatoolkit=9.2. E1 `& s2 _& P4 [0 Q4 b * W3 ], w9 l) v( X. C

# or, for CUDA 10.0

' ^, y4 U$ K+ ^% F) G- q

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

" u- F( J' w/ V% ^! P

   cudf=0.6 python=3.6 cudatoolkit=10.0

5 d9 b7 l0 y- a* ^1 b; P4 k7 I8 G& B: X

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

/ A. E; K' Z' y8 _4 m4 }

Pip

! `1 A3 U- A+ J) l8 }

cuDF 也可以用 PyPi 安装。

2 d* O2 ~) I7 q $ Y! e9 i7 E& I7 p

# for CUDA 9.2

; A$ H+ U, M: [

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

" I& V3 U/ @, T* I# L% v! a' h$ A5 H; z B) C0 Y

# or, for CUDA 10.0

% G! n- W m8 \/ \$ Z" X2 n n

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

7 b3 z9 w X3 o: r3 T7 I3 B " f9 {/ C" A) n F+ b4 a1 \, Q# _

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

' Z, e- x" a R! O5 u: W- o0 ?

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

5 A/ ?( ? S# g/ x' m+ t

雷锋网雷锋网

$ t: Q- P3 p* `3 ]8 G# j" L, A " q2 o$ m0 a; b+ D V, t$ o/ Q5 M: m9 t5 J" R" F # k3 l. M6 `4 g& S% j$ _- _ * Q/ x# X! M0 X& N: G
+ T! Q8 K; W( O# w$ U
' r0 Q& i) V5 r& {5 O8 ~3 Q* h y) N
( K4 Y2 S2 E4 w ; S$ R5 z+ P1 F1 u/ b9 t" Z- Q: l6 n3 G : O% A" j! [3 K" `$ z 7 ]$ p* G8 x5 q9 W
回复

举报 使用道具

相关帖子

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