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

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

[复制链接]
8 X& C5 o" f3 Y
6 R: J" B9 M- M6 A. g
- e) E* A1 u! U$ q$ m- V' t: `
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
7 {! L6 A$ s( Z _% y; w
4 G3 Q% W! {% |0 _
9 i) Z/ s" Q- q! K1 A
! X0 z9 e# j- Z. f @3 b2 l# e

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

% \ A/ v: v3 V' i

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

0 D/ B p. ]* V3 u9 i

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

8 k( s4 M! k$ m; ]$ }) D

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

5 t4 k; ~; t! ^2 p* ]

import cudf, io, requests

' Z1 d/ L* f+ T! T

from io import StringIO

5 w5 v9 @ {( h5 j- C

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

1 `$ s7 r5 |7 V) R Q4 m; j; C7 ~ M0 M6 p& ~2 Z5 g

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

; @ N0 M( A- O/ M- O, W

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1006 Y6 Z3 o: o$ { |" L }& N2 a9 q% U$ k6 e6 a

# display average tip by dining party size

+ h- n% \6 c6 ?, F& o

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

' k6 O% ^# Q. a5 @7 j) c0 y: X 4 l& d& S8 r" s# S5 F) m' [5 K4 R

得到的输出为:

4 v3 L/ Z+ ^* B# L: { 2 n& b) W4 F) m& ^6 P" U2 n

size

' i! x3 k% p9 t- e0 o, K3 l# U; F4 X. E: J1 f) b

1    21.729201548727808

6 ^& A7 C4 j" J k* c + K U }9 z) v) D! d" {! m

2    16.571919173482897

& e: H7 M: e1 x- ?; U e1 {' c+ P4 C" l5 B9 @/ Y) h6 Q- F' o9 U% D

3    15.215685473711837

. m4 ]- w& }+ K" ~) W9 X9 i 4 x4 J, `+ Z* B4 T/ v4 ?

4    14.594900639351332

, C+ M( o) _) E: L9 J; B. C. e0 G8 D& l2 |1 e

5    14.149548965142023

) C g+ c9 A- U; f1 Z4 T: ~4 ?* d1 F1 J

6    15.622920072028379

) Y3 `# m# B1 Y: k, O . ?4 w: l6 Q5 _8 z

Name: tip_percentage, dtype: float64

6 W) [9 N' Q; U3 F H" B2 [3 p, M- o# R7 U

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

. U7 c% M1 D0 l

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

- W5 u8 t ?& l5 g

安装

; v( W+ a# K2 i6 O1 l j9 L

conda

& F/ E4 R' S6 l) i1 M1 C2 S4 `

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

1 N' f/ E$ g ^3 l4 \ : }( Z% o9 I% ~' H! t

# for CUDA 9.2

6 f: m' H- K5 S9 z0 i; h

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 $ ~* f& X' j$ f# p+ T! F& P 8 a; E+ L9 Y4 i% P" ]8 V

# or, for CUDA 10.0

( Y: o7 ?# k9 o

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

, l1 T0 E5 J2 Z) d% r

   cudf=0.6 python=3.6 cudatoolkit=10.0

3 a% d2 \2 n6 h" }3 p) ` 3 m6 u$ n- o0 X7 \9 B% G/ P& J) a

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

" n( ^$ {9 ~/ Z: i/ ]/ ^

Pip

3 D7 ]! y' d; Z( r4 ]( {4 O

cuDF 也可以用 PyPi 安装。

8 c" T4 o+ g. m" L 5 T% n% a: x" f3 C9 W) B

# for CUDA 9.2

' w7 n3 j/ r9 |3 Z2 z

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

# w5 c" l* h9 V, s+ f! I: L ) |6 ]/ v5 M1 |1 e9 J. v7 }

# or, for CUDA 10.0

5 Z% O/ x& k+ s: C9 K2 e

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

z& m. a2 |0 t9 Z/ M+ I8 Q. p L 4 O! a/ x( l) k) O# \

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

0 X. b q( K# G+ ^" R9 R$ @

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

- b) O: k8 _( q" m

雷锋网雷锋网

# a, \+ b3 z3 l$ [ 5 v4 V, _3 C2 d# `- H& q% i : F% r+ j. w0 B7 s; ~; a7 I. H" n( W( B4 @2 \: _3 j% d8 B2 J+ j: y ' L* U$ A# G$ t" W( U1 K, i( T! J- Z
5 `8 u5 F4 _, e# Q6 V
- z3 r- E7 S$ h
& ^( {% d' E' n- g$ V/ N h3 t 0 h+ K/ x% \; c2 _* g- r! h & c& D1 z- S* B, T/ d+ q4 b3 R. f; k2 x& N5 ] 1 G. e! Q% N4 w, V
回复

举报 使用道具

相关帖子

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