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

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

[复制链接]
9 B; Y0 R( T. s ~! z# F* ]
! E# t3 A/ f! P; w0 t$ n
/ s' J* A% B3 V" ?& I
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
. ]* a, G1 F$ L. T2 n: P7 A5 ^: p
1 L/ d* w/ ]3 j1 I* p
+ ]& L! S* s2 a
1 d( w" d( B) P: O

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

8 o+ P7 ]& V" k: ]& S9 k

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

& Z! L1 j9 v- U

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

: \9 G' x) X( C& p2 N

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

$ J) e: }, K, u2 N

import cudf, io, requests

- _" `9 i3 Y6 J0 g

from io import StringIO

3 V3 M! i1 ~0 C, X5 C8 j" H

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

; \7 e( ]& A2 A4 b3 j) W/ b 2 v @- ^3 y/ n" x+ d3 m

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

, T2 T5 ^' P/ f

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 . R, v5 e8 J* R1 v " |" x8 F6 Q5 Z

# display average tip by dining party size

7 @3 W0 P5 y! c+ G7 y" e

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

* \* c3 {$ a" J9 K' e' _9 i / Z. m' a% ?8 n

得到的输出为:

) W4 x! x" R) [- R) M6 V0 i 2 U8 A% s+ j3 s% V* P

size

# v8 m. c- H1 R, u4 J 8 N9 q O* k% l6 s

1    21.729201548727808

. j; e& c5 X4 F* \( m% l' L 7 v" v& v& v/ `

2    16.571919173482897

@) D% J( J" i" x; h. A% o$ a ' W# \3 c) q! ]& ]

3    15.215685473711837

/ `: D6 J) ?1 C$ o% Z& O' \- {% y9 R" | ^! W

4    14.594900639351332

R1 y2 r1 H! a# g 8 u4 @8 `# z* ~7 n

5    14.149548965142023

9 L0 j* A/ M2 G4 j! }( ^ ( U' f) u, c* s. T/ Q: E+ x! e

6    15.622920072028379

# p: l2 O8 [) ]% ^3 L6 d' r" r9 R ' C: [" ]# ^$ R" ]

Name: tip_percentage, dtype: float64

+ S2 q0 d6 ]2 l. c' k$ O) ?1 v5 ^8 o9 U$ C ^( {

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

/ d: D+ C$ ^, e

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

/ a) n& U- ~7 m9 ~

安装

' `5 r* j9 E/ m* t) R9 W$ ^5 R

conda

7 B" I# C% g5 d% B' s8 P

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

5 k: R& v7 z9 q4 o0 U1 ]9 x8 h( G: v7 I% c: c* n, W

# for CUDA 9.2

# E; D8 N- w' e, C3 n( q( a

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 . G+ p' o7 C9 N) C4 e* s+ A- Y; r8 U# J$ `

# or, for CUDA 10.0

% E9 ?' P( f2 q5 V! S

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

& k0 y- L; d) \) z

   cudf=0.6 python=3.6 cudatoolkit=10.0

4 I, Z& W. A0 A: ]& n / ?# B4 r) l$ _( d1 g* @8 N3 Q) y

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

( V8 ] t5 O; O( ~' T

Pip

" N3 d' `0 F) n3 ~% l- Y

cuDF 也可以用 PyPi 安装。

$ X1 H* S! B p# ]. O ! a* u; i- V6 \8 s' D+ j

# for CUDA 9.2

" R& A! t9 ~$ }# y. i$ `

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

f2 `* Q1 ?8 A" Y8 Z8 z2 y( ? . V* L5 S) Z9 \* p. f! I: J$ B

# or, for CUDA 10.0

* A3 \# w$ z* H

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

: x* t! `8 ^. Y( r: E+ Q ) x( \% c' I( Z; X

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

# M7 `& i$ Z/ _$ b+ Z

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

1 Q, ]6 {8 j& J9 O ?

雷锋网雷锋网

5 L S1 ]' \' K/ \7 t& @ : U4 ~6 ~/ ^5 S* e- q + \; z0 G- k& ~7 N% E9 I 7 {& S# n/ p2 ?2 i N. m1 | 3 }3 S+ ?) d4 M* P& n, F# l3 S
" `) s+ |6 Q, p- ?$ _2 L: J1 i
4 A( X0 [8 c" A T: I0 k
5 r. u) {1 ~: j, j3 G7 O , |# w/ U3 h0 Q3 I3 @+ J1 j* r$ X; Z! j3 t, i( R0 `7 ^" j " R- p, R- N5 w0 B( b' E! ^) b( e' k & q5 e0 o G* N# Y
回复

举报 使用道具

相关帖子

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