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

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

[复制链接]
% [6 k' x1 F2 q% O+ S
5 Y, Q" Q+ s" T* M+ u
2 x- I; f& K" i6 O% x' {5 i6 I9 Y
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
$ ]1 B# \8 e) N$ G: H: c" |+ v
9 `5 n+ h7 J/ h- |( I& Q1 A, P5 v
' V- ^( d0 w8 H4 z- H
% O& b% I" P; I+ ^- b# \7 p

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

' n8 ^2 n; l( M

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

$ E0 ~4 s; g0 F8 f7 B: ?7 k

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

0 \ r: p Z% U% }" V4 |

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

8 ?/ r* D9 E" z. w- C

import cudf, io, requests

% T8 v3 J# M( S

from io import StringIO

u: ] v! B+ |9 q

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

3 u7 c: i% T( Z9 \ # |( q* ~% P& h& L

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

- k( y2 G, B- a/ T c

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 9 `5 `9 `. j8 t' @6 z6 [( } 8 o, k9 [2 `# d2 ~; K

# display average tip by dining party size

2 Q5 y3 n8 F; f8 \5 G" U, r

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

& W% ~& F( U; \; D6 l' l# N. i l4 p5 Q9 t/ K

得到的输出为:

7 ~ Z4 Z" _) c' _. s0 `/ Z " D: c8 H$ }) J7 r

size

% t( I- f4 x. S0 ~5 p. q , d0 P) T! y' b0 @0 X9 x

1    21.729201548727808

& E5 i3 O4 L5 P2 ?: K1 g 9 p; Z7 ?' p* ?2 g% L

2    16.571919173482897

, X) ?2 L1 l/ G! ^" x: Q* U 2 z5 U' Q! e/ K. r2 f* G

3    15.215685473711837

0 w" E" w: c2 _2 B 9 d: S8 z' d- ^! m, n( W

4    14.594900639351332

% N/ D# Q% }7 B# C& h- h 3 ~8 ]: J- p2 ?! @; N6 a/ w* S1 I

5    14.149548965142023

& ]: }" Q: O$ ~& C+ r# E7 W. o0 `+ h# _) Q

6    15.622920072028379

j& F- {( }1 T& @/ Z: v ' R$ |/ O' e2 h' N" U

Name: tip_percentage, dtype: float64

6 j1 N, R8 |/ y# u t; c" E" P( L/ [* F- a

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

/ `7 f- t' x, w# ?

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

" x$ Y o' @7 E6 X9 v. c8 A

安装

5 F2 a& S/ N4 h/ b) z- t2 ^( {' }4 ~

conda

8 c( r% o L- }/ S( i/ Y0 @

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

5 N2 \: m, [8 N+ e( f( D' x% q O5 _3 T! Q* ^

# for CUDA 9.2

. \5 I9 D( e% |7 m2 T+ F

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 " u& a b. I) h$ z% r7 h2 h / X) d. ~4 V1 ^# `0 Q, }

# or, for CUDA 10.0

0 ]8 `3 k4 ]/ B1 p) s

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

4 k7 D. u! \7 u

   cudf=0.6 python=3.6 cudatoolkit=10.0

6 `: O7 p9 @ L2 m* j; Y. T/ E x+ x * K. ^3 L' `; e2 g% e

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

1 N4 h) d7 T1 F$ h/ c$ o5 G

Pip

" i1 @4 s% [( _ A

cuDF 也可以用 PyPi 安装。

( ]# b1 H% E" z. u! U7 a5 W* L5 H. j/ ~) P) D! s+ f

# for CUDA 9.2

2 k4 c- G/ S7 o

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

& P* G: E$ u; K6 ~5 ` c+ {6 | - I. Z* e* _/ g+ D

# or, for CUDA 10.0

' R& |) u4 }4 U) E. ]% c- i# g* d8 ~

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

5 B& t" g% m6 x3 [# c; l+ D & [! d; L) m6 |7 N$ z+ g0 n

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

7 _* m) t$ b; ^- v3 b* z

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

5 n1 j. S; I6 {/ G" q

雷锋网雷锋网

) ^) e8 v8 t7 w' }& u" K3 U$ h- ]0 h0 q$ S2 z1 J. _; r 3 a: F9 G& T; ]& q7 r 0 ], T! `! s+ }6 |2 `5 s! \ 3 e7 x3 ]( N, j
; S; l- n/ V ~' X- h" V
$ ^0 o+ l* G/ _' p
2 f9 Q7 E6 v7 T' T, j& ~ 0 V. o( \6 [+ ^, O* k( _ z & k' t$ k+ P" G0 J0 Z9 X. q; P- D 0 I! O( C3 H8 ?* K/ | , k& Y2 H7 A1 R G5 P
回复

举报 使用道具

相关帖子

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