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

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

[复制链接]
5 p; ^% s; M) v1 J" _
. Q- {, \; `) e4 ^; ]5 `: x- |
9 ^: A4 F: N2 r! m$ g
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
, U3 n* V1 |, ^/ n0 v+ {( c
5 X! R( o: S+ [6 ~) a9 X
/ l( b b* D3 H; w+ ^6 d
/ ~6 X: ~4 G0 C" _, e7 ?

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

2 u0 O5 F r, v. o2 ]" ~

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

- o& c+ N4 y6 C9 O/ }+ ^

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

2 ]: l% b4 r ]% V. i

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

3 O' c, ^9 E+ j+ q; {" K

import cudf, io, requests

. ]. x7 Q8 J7 `+ R8 ^+ l1 c/ m

from io import StringIO

( x) T8 ?5 g0 l- U' b

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

" W% ? P. J: g6 V- L 5 z. R9 l( L, G- B

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

% H* l" f. D9 _, H+ A

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1007 `+ z; |, s% L! w2 k ' X/ r- K* t% x0 c8 [1 ^9 p

# display average tip by dining party size

) m, c) e$ [0 j% w$ l

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

1 n3 @0 t ^% z8 s " X: Y0 N$ O5 z0 n& d, P: E5 ?6 O) D

得到的输出为:

. j: v! a1 R/ }, z$ D% B0 }% B# P5 L' f! i L

size

% ^9 \1 p$ P9 ?2 I# K9 U) { ( S9 F1 l% X X/ i

1    21.729201548727808

1 L; F& w) ?4 d1 ^4 \ ; W# \# v% m+ Q" E( T& `- I: M

2    16.571919173482897

; U- ?, J2 H% ?4 a3 a* H- r1 v2 s0 _ 7 M# `1 z% k6 y6 ^

3    15.215685473711837

/ b- }. k! B7 T. f* ~4 i& x4 Q & \: _; ] y) n5 T1 }

4    14.594900639351332

% k; U, B5 K* }2 Z9 L 2 E3 t2 |3 }# d, E% O

5    14.149548965142023

1 p7 O! ^! r/ L. H% M # P9 r/ _7 N: K! C* | m7 L: N0 V

6    15.622920072028379

+ ?- N+ L# P. x2 N0 z e+ M( b! A* ^4 g8 i% `

Name: tip_percentage, dtype: float64

0 g6 r y# g/ ` 2 z T* V% d5 z5 w

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

* d$ D. T. ?: D/ R0 ]3 r+ y$ i

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

- c! J) x2 E6 J' \% B8 {+ O* h: H& G+ Q

安装

5 \% D% X& Y' r1 V) W/ t

conda

3 ~9 ?! u" Y7 i1 M

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

& y/ d! X E, K }0 c7 s) O 1 @( b; M. M/ c

# for CUDA 9.2

; h+ T. I8 |7 G, W9 O+ k4 ~

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

   cudf=0.6 python=3.6 cudatoolkit=9.2+ ^) C: [5 Y' e3 F& W: j: r 4 n @9 f% h5 o

# or, for CUDA 10.0

# v2 D9 ~5 ?; b

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

6 O' @% }/ w( P, Z$ A+ j

   cudf=0.6 python=3.6 cudatoolkit=10.0

, c4 w% W4 x. ]9 T 7 g1 c" b+ a, O; c7 H! d

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

% b: v' x5 e! t. b

Pip

7 I n" h3 [/ u9 V- z, Q

cuDF 也可以用 PyPi 安装。

- t8 L+ s3 a+ }* n ; b" b Y* W) g) }8 z$ Y

# for CUDA 9.2

7 d0 O% x4 }9 ^5 K$ G1 j; i

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

1 J/ [, p( ~9 T . Q8 p/ E- a) l* `

# or, for CUDA 10.0

( R$ B7 _) W. k* p# O* A

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

6 b+ [1 d, ]0 K! K2 a! m1 Q4 X; a / }, U( i% Q D

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

0 V. L2 ]4 G! f2 k

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

) D- I! p3 n) R$ b+ \& n0 `# L6 W5 K9 p$ Y

雷锋网雷锋网

8 _6 w/ R/ W9 q2 t9 H, v% Q1 |5 X$ [+ a# X3 v$ l4 N ! a: k! h9 |3 G5 x9 b$ p: q7 d' V 5 z0 V7 q2 X4 J! L$ B4 [ : k2 h* f) c4 Z C$ x' N9 i
O [$ {3 M5 L5 S. ?
2 E6 H- b. D4 o
M8 Q0 L: c6 y% X- r! E) t6 q% t9 f8 X, J$ e: j# {, p! \ , p, W& m2 p8 r% ?6 ]5 W& H $ [8 g, O' [* X$ P , v% F% B [6 g4 S& i
回复

举报 使用道具

相关帖子

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