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

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

[复制链接]
7 r5 Q6 v! H" ? u/ h W
7 {. F8 Z5 \( A% r# V
/ r$ Y6 I6 s: A! \4 h' c
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
$ X& f( Z+ x, x/ E4 W% R m! K5 X- _
) r0 d6 y) U' v D
* w9 D% P7 O+ z; Z9 M6 t
0 ]$ W, s0 |8 n

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

/ S: k. f5 B5 E

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

# A L- ]7 n% F

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

$ r: @- ^/ q H" ?1 _

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

* K( t, h: d2 u! T

import cudf, io, requests

8 c; D3 v& h K9 z% E: Z

from io import StringIO

+ J# t9 [# P9 c# w; T; I5 V% A* F

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

* Z3 E, k* [2 m. U' p% L2 u! G8 T5 ^" p

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

7 t. J- ` K( }5 f2 @9 b* | T

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 % w% M# u* Y- B" n ( ~: y- F- R3 v0 m( x

# display average tip by dining party size

) Y& Q# u* o5 v

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

9 B! Q0 M& {" p; O6 E2 K1 V, C5 M0 @# V4 T! }2 r8 k

得到的输出为:

: _0 S$ U# \9 t s; l# V. u) I. g- V 4 ^( t% J/ K4 T& l

size

5 o/ U- N/ o$ a8 R' z, e. W% R0 J) X7 j 7 [) c: L W7 s9 ]3 }0 s. ~

1    21.729201548727808

2 k4 ?+ n/ s6 T. w E. Z4 g" K9 ~) Q: ?! l+ w3 c' g

2    16.571919173482897

( U6 a6 v4 t: y( v i6 ]: J7 o- Q+ X

3    15.215685473711837

/ `: x3 w5 y H$ I3 H" i 1 U& \+ G* b4 Q4 q! T ^' |

4    14.594900639351332

( G2 z% J, v! j* q' I $ ^* ]. ~. w" u/ ?3 {" _- s

5    14.149548965142023

: o7 X/ b- [- [" j( a; g& M 5 V+ u) Q/ g3 @! E! Z D. {7 j o

6    15.622920072028379

- o/ \, |6 T" F/ _" T % X* w& ^1 o1 @4 I& z# A

Name: tip_percentage, dtype: float64

% _. P) V1 u2 S* k 7 C" t' V0 Y& [

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

- K* o& x' r) G

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

* e6 a( n9 M, [" `7 H

安装

\# c# W$ z& v7 \# }

conda

9 L& s0 X _8 `4 B

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

: W4 s* e) Q( e! l * V/ S9 }6 d2 K$ o. M( n( a

# for CUDA 9.2

4 y4 `$ @9 B( }. B* u4 e6 N4 \

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 1 ~; {+ ]: l- @! v2 i8 S# q/ h4 ]: m2 ]0 Q v- A; p* _

# or, for CUDA 10.0

: P9 j1 [' c' f. q! m+ C' \

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

6 y( F+ o- _% n6 k4 @- ~

   cudf=0.6 python=3.6 cudatoolkit=10.0

( u$ V" g! k) [; h; I 7 `# k: F6 P, A' r! t

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

: k7 y6 t# K d; Q. C* V

Pip

1 a+ s1 S0 M0 v/ f C

cuDF 也可以用 PyPi 安装。

" H: |8 ^5 x4 r2 b" b# a. L 6 }- ~6 t2 q# Q8 S# G- B& R5 c

# for CUDA 9.2

' x/ x9 V8 Y6 l

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

4 j7 J% d4 M. F3 r- y ; k" u! R" d; N+ J9 D

# or, for CUDA 10.0

0 j; a. G b& O A, s; o* p. Z

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

+ F8 ^; r/ b* f9 Y: l. @$ ?6 D, {" f4 {, O" D9 `3 y" o

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

+ b/ }. H' }8 ~# h+ k* O6 o

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

" I/ d1 |; L6 t) l) V5 R

雷锋网雷锋网

3 R7 y& j( w& _; ]/ c; \& [ * z: T( o3 P V5 t: ?* ]3 W! N0 _" J# f % ?/ g% S0 x- Z( A& z0 r1 B" K* ?/ c2 m( x: O( n% w- V% [6 O2 J
) ~, d P6 m& W0 K9 C$ [
( k/ e! X- e# p" x8 u. K# ~
! N; X: j' M/ z! L( K . _& t! ?$ j4 M4 u. ~/ I5 H6 l( Y& i- @ & B& d. z7 b" l6 A0 e6 x" K * x! \: e3 F: h2 F# t# t
回复

举报 使用道具

相关帖子

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