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

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

[复制链接]
# J( D8 D* W) g& I
% ?: z' q$ `+ d7 J7 {
7 C0 {: G* M4 _
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
5 f5 p0 Y V8 N2 H2 i6 Z3 i1 ^
! p+ r* T" S1 ]. L. \4 U
9 M9 V. M, ~% Y$ P' | [8 z8 X4 n
7 _* k0 Q0 O5 P' `( ~

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

( u! }( r7 z: Z7 ?0 G

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

- k: I E" r0 L* r- X) X

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

6 p/ ?2 v% Y8 F

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

\) r. F* E* b+ S

import cudf, io, requests

/ d$ Z5 D8 M7 s4 W

from io import StringIO

3 s% X8 Q V9 o7 J( D2 u

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

9 A1 H5 A% I l4 T8 i* W3 H# W7 H R" |! c. C: M* ~; w$ @

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

, @& V1 e( T. A( e- g# o- w

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 ) W z) J; V6 |4 q 9 E7 Q) M3 X, |5 m

# display average tip by dining party size

; U9 |5 ~2 i% [" F( b- v

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

8 G: p3 W5 a7 _4 [" N ( x/ J" ?+ ], G

得到的输出为:

6 P$ b/ W" z V# c- w& A; e* `/ V $ ?5 _3 C( {5 I* Q8 T

size

; ^$ k1 q/ x4 x1 I1 c" I8 Z; [5 L! d& m- S% T+ w4 N& P. @

1    21.729201548727808

, Q- P. b- C( l- _7 h% p5 m: p2 Z+ `3 G( Y

2    16.571919173482897

3 E- N' r# F0 M- f4 _! U/ h* D8 p7 x' W/ _. u9 K8 B

3    15.215685473711837

2 V2 }1 r9 x; I6 D4 p- d 1 T9 v) \9 y: e A* B. Q3 R

4    14.594900639351332

: a, y/ j* w! W+ ` 4 z7 Z E) u# P2 q5 @) D9 \* X6 @

5    14.149548965142023

5 R# O* H4 t- \9 M3 O3 g7 r' T P' g . e1 E' V; S i7 J$ v s

6    15.622920072028379

1 m& b& C1 {# g" H) Q I5 t 5 [3 |$ v' I" C

Name: tip_percentage, dtype: float64

# i6 f/ Q- z/ w. v" t' o+ g/ p a , u3 u( g% |; X% A" V; @& [" B

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

4 V) S. B! Z* n

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

' @- P: l2 R5 X" ~9 e6 M7 f: [

安装

8 g8 j1 a- l2 _3 h' m1 i4 P

conda

9 S \# s d" ?* K

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

0 s0 P* l% ?8 p9 ^6 |/ e ( m( D; ^4 m* s) \' k

# for CUDA 9.2

) V0 v. d1 P& N2 G

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

   cudf=0.6 python=3.6 cudatoolkit=9.23 y* \ D! n2 x0 `# k* x 0 L: e2 u; ?4 e9 H) ]

# or, for CUDA 10.0

: A( B2 j e& j: K

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

- }, K I, h7 y3 ~7 P) _2 V8 E

   cudf=0.6 python=3.6 cudatoolkit=10.0

; @1 _/ |$ U. V E 6 i( O# d$ [) m; R

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

% z2 I5 l8 C+ Q- M

Pip

/ {; c2 y) a+ {- x% b: O: C

cuDF 也可以用 PyPi 安装。

( A* P9 \+ m# k 9 T0 |& D" V) ^, t9 S- _

# for CUDA 9.2

1 V! x+ ?6 s" D' c

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

b$ \" H, v/ Z2 `: B5 | , |7 Q5 S6 Q1 U3 i. G) ]

# or, for CUDA 10.0

2 @; m6 |& i: V' |$ {. s2 ?

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

8 U$ w1 C6 Y0 ^" {. m p# T1 R3 f( R2 W$ y$ s

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

- O; z' v9 k( G/ G* I

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

: {) _8 M2 p& W/ F1 V

雷锋网雷锋网

/ C1 o: d9 l8 P8 N9 R F( I- p. c " I/ T0 P% i2 {7 ?+ F + Y* P$ Z: {3 f* s * W8 C! m3 \$ z# m 5 T2 E' l# r m5 h, ^
( ], M1 c; `5 U
1 u. u* H( j! g+ C3 w- h
6 t" j; e. B/ Z3 l; x1 z & d+ Q1 F& j H9 i f: W! O6 u$ S2 b4 l& R 5 e% N, I( o: t% e, X P5 |9 U) F) U. [2 ]
回复

举报 使用道具

相关帖子

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