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

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

[复制链接]
& B8 D! Q$ l1 x9 w6 T* f( U4 Y6 m
9 O; J6 P9 q* E ]1 q" B0 d
- r2 B, A4 j& X
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
3 n& M7 P& M2 Z8 V, Y
/ a$ S9 ^& e/ ?8 Y
! a" y1 m# W$ M
, I/ o. y/ R. I: H- F

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

\7 x, k" a @! Z& e6 `& Z

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

+ y# m* K% V# Q, {* N

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

6 J6 j6 R: T# k9 ?% \

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

! b9 K6 c8 b2 P. s$ R7 ]' v; ?' M

import cudf, io, requests

2 \# f2 p- l. ]; w% U1 [4 {

from io import StringIO

* @1 V- O) `7 r z

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

; `/ r8 K, |0 O, \$ e0 w' g; s4 j* B* [! i: E+ R

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

+ _& a4 w& R( U3 c/ ~% F% W

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1009 l. r( t9 Q# f8 e4 v$ I! K ; f3 B/ K. h1 |! G' B

# display average tip by dining party size

5 i1 l5 ]6 `! N5 p

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

; v& y8 X% f- ?5 c% H ; s8 B. Q7 F1 d7 b

得到的输出为:

9 n! P' s3 \; v9 {" t* `0 g5 d+ K& z. m+ f, t9 X* j. r

size

" ?7 ~, t' k% F, _) L3 p$ a) V ! G3 P* [# @) ]. H8 L. p+ w" V

1    21.729201548727808

$ L, g7 F8 A8 V& z T! b% f# w/ L: Q1 V4 b

2    16.571919173482897

$ E- u- ]' h3 _8 ^ & t3 E: _. g/ ?+ F1 U

3    15.215685473711837

- Q2 H; F* B0 c) _2 m/ r ) ?$ f+ `1 f( G |5 [1 @/ t, J

4    14.594900639351332

! c: ^/ M+ N. j8 e8 A* V3 H! y - U$ H; x& r4 d* s3 q

5    14.149548965142023

+ A' \; ?2 a( K* q, J7 S0 L; J4 z* _6 `4 h5 E$ g

6    15.622920072028379

' M# i% j, j3 e5 k 8 U) v0 B: A) M& Z# a3 X

Name: tip_percentage, dtype: float64

+ g( M* O0 Q* ]3 g* F: Q+ ?. s0 |" Q9 L9 F/ r( X8 \' d- h

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

1 `" ]* g* Y4 Y4 A4 A: i* l2 Y

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

" r! e: s' j/ i9 N. J& L& P m% `

安装

$ V+ W( p; R1 Z' S9 F) \

conda

; t. t0 w$ X; l2 G/ O. Q. |2 E

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

' @, `1 f q+ h( E 2 H1 O. W$ r2 g+ Q* a, H+ a

# for CUDA 9.2

' ~; c6 i+ \, } k" H( H: f

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 % n9 k# H4 H9 z; Z, {( d: i3 V" {6 n

# or, for CUDA 10.0

6 o B7 k' ?; g: T

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

6 k# Q( ^% y2 X

   cudf=0.6 python=3.6 cudatoolkit=10.0

9 M2 }. \, @" u9 s* r; a 1 _! G0 r+ w1 W. `! M6 y

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

+ o% W' s2 @4 L4 F. S. m: `4 V

Pip

6 V1 n/ r3 h! }6 o2 |6 Q& V

cuDF 也可以用 PyPi 安装。

* B5 w% R1 ` \1 k, W6 N' }7 q( w# x- |4 l8 e' e" P

# for CUDA 9.2

( B( ~9 W2 C4 ?3 g6 `6 I

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

) _& }; U; X9 q2 ~# }# o1 u+ [( ~7 D8 @% T8 `& X" O

# or, for CUDA 10.0

# p4 `& q' _; c5 G' o! P

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

# C8 q! \0 X! f. \& I( m, R% ]4 W$ Y, k

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

+ c' A. q! M- t" Y

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

3 z0 X5 j8 W- @& L! h7 g( p

雷锋网雷锋网

4 M, _* C7 _# \# ~6 |+ X/ { 2 x* ]. K, U6 Q/ x# d5 K$ u3 v2 J 0 q* q+ u3 b# a& E3 [0 g0 s' Y3 n' n0 q: P$ K ) Y0 t- Q2 K. V9 S! j; w/ {; ]
* z9 n+ T# Y9 W f; p% ]
$ M$ C& M! k `; M! I [' h( x
( m5 R! |- F& ~" L! r ' z _9 S/ U* X" b: R, Y ) ~& q4 }' X( s6 J1 W8 [' E& _' Z0 K. y* @1 R5 G & k0 M3 Z2 D h- @+ r3 f) [
回复

举报 使用道具

相关帖子

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