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

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

[复制链接]
7 v/ w' O4 q* W
! Q( x( [3 A6 S8 @
+ `2 v1 ]& M3 i( M( \2 x: l/ ^
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
% M( V+ d1 t3 U$ f/ A; `; U5 k
5 f; w8 C: g6 V' _* k
9 \( T( e* q# ]+ x% o
- F1 l$ o1 x0 e! M( o7 T2 Z; F) ~

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

) X7 Q$ c- l0 ^; T1 q5 l

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

; }; o8 h: I! R6 x% ^9 m X+ y* s

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

p5 F8 r, ?' y1 l" \; ] `

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

& ]. n" U7 Q# l1 r

import cudf, io, requests

4 g) R; Q; B2 A0 N5 A

from io import StringIO

" Q( l6 b% s, l7 W* a

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

0 v1 x/ W" O9 J: p* C6 A4 n & Y0 n8 W' q3 @) z# |; n

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

; S( ]$ ]: Y# V% C8 c; d$ R

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100' r" q4 b& `5 H* X2 j; W3 F% Q [( u5 Y! e2 [; q( L

# display average tip by dining party size

/ v( ?9 b ~1 o3 M. x0 \

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

- F% k* x3 u( N* k, k" @5 Y3 r2 c P& d

得到的输出为:

9 v# r* w& v, T/ Y ~, {( M4 I * y& T4 u" p M# T: h) [; k( N

size

9 G" O+ J2 M" ^ # Y1 j- B! ? h P4 u. q l

1    21.729201548727808

7 v8 F3 C; C+ @4 Z# m' T6 \. w4 t 0 T: l5 \7 c0 M4 _

2    16.571919173482897

0 j: g& N. }8 B* b! e " V' Y+ {. i0 U/ l9 _0 H

3    15.215685473711837

3 @6 G. a4 }$ z! j b5 ^8 L9 p7 V: G# p7 X

4    14.594900639351332

; Q: l3 h1 R4 z8 v6 J , `+ P# Q% B+ d

5    14.149548965142023

1 S c3 B5 E- f* h # n& i6 D M# u7 ~: ~: R

6    15.622920072028379

9 m* f, s( v# b& N. \0 [1 f 3 V: }# |6 ]" b/ j& l! E2 W% i

Name: tip_percentage, dtype: float64

& P; u1 o/ Z& b$ ~ 0 @/ i/ g U3 }: K

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

( R: d. B. S# t( J9 ~

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

, V% v6 j4 R( l! Y( C3 N

安装

5 J6 g/ M3 ?' [0 b

conda

% d: R9 ~2 h' Q- F( K9 g3 C

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

6 F' P( C. A6 S8 ?. d% H ; q/ W) ^8 g6 G/ q) f1 b

# for CUDA 9.2

. y' n3 D! h6 \6 A, w1 M% W( w

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

   cudf=0.6 python=3.6 cudatoolkit=9.23 ^8 U8 x0 t, _ 4 z q5 w1 \' p( g

# or, for CUDA 10.0

6 f5 Z& l8 J8 _& ?7 o6 O0 O. D

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

/ E5 ]7 a9 ^1 |: j. M; B+ y

   cudf=0.6 python=3.6 cudatoolkit=10.0

; ?, I! v: E$ ]: w s - b1 Y k4 A( D- D

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

# v |* P- [8 L$ p" E

Pip

) S$ ?1 ?& c6 Q

cuDF 也可以用 PyPi 安装。

. w7 ^9 ?1 n7 N+ P + I+ _- d; M: k3 F( o

# for CUDA 9.2

* x1 w4 b7 I% j! {- R: t7 Y2 P

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

! p `7 S8 g3 H9 U9 p- B ! P j- f- A# T

# or, for CUDA 10.0

7 r: R& i6 r- k3 k) w

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

* |$ E6 c8 x f7 [ 9 q. a) q9 |/ O: a W

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

2 s1 X" G" e) y& q9 H) Q

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

( H3 Y7 i- P6 ?0 }

雷锋网雷锋网

' q, H4 b9 Z: {6 O5 W" q- r+ U " D2 |4 j/ F6 |7 v$ J; Q. N7 X: z1 @: z5 W( y5 {7 E 4 {1 k* {! R4 X2 P6 l " @0 G; ?2 h7 ]' C! ?$ @# x# z
" U6 d% b6 m: d. s& Y
6 x' x1 s- {$ y) x( F9 t
2 O! v9 J% f! r, O! i$ z6 o* q 2 U# C8 w) w; J% p8 M: A 2 a# Q' L8 X8 g: P6 i0 e/ t ( r; e5 a+ ~6 v4 H( S / q3 f( O: ?! W
回复

举报 使用道具

相关帖子

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