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

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

[复制链接]
1 n% _" J! Y" D) w0 K% x
5 E' l5 f6 o+ L- r) J" S0 B
8 C; N' S8 ?- v+ D. {: C9 y9 w7 N
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
2 I V5 {6 N u1 M% ]
2 _1 X. c* T l& w: l
& a, T- w0 F6 K E+ \
* i3 |9 n8 B) c" k

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

- m! F" g0 X9 d; o' l5 v2 L- C4 m

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

5 l2 c# \" D( A6 I

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

, |" }( e/ y6 C9 M3 \- W! _/ n' C

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

# [% }$ l( O3 E3 E9 q" |

import cudf, io, requests

/ K, N+ J) m# `$ u o# v

from io import StringIO

# t5 q/ ` a1 y+ z

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

' }# u& J) K W 6 X0 y4 A. j0 |: v

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

' `( Z3 P) X3 ^ K6 [3 v

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 1 |- Y3 r6 A3 b) S8 ]5 Q8 T- U6 i. p 9 X$ `" w; P7 Z: H. o8 N

# display average tip by dining party size

+ S5 j5 V. G! ^. t

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

9 a3 Q2 [0 d. F 4 u; E% y" `( @% t; Q' U* N

得到的输出为:

3 \2 Y/ |" o- z$ y: M ) |* y) r- i! q/ Z" _

size

6 j! |8 ?8 N: f$ } ) A6 _3 S e! D

1    21.729201548727808

( t" M" B! q& r $ }! O7 A6 j7 Y: y: ?6 T" `

2    16.571919173482897

* u$ o8 Z' k, v" _ . x: N: s2 S8 u9 |1 Q; l% [

3    15.215685473711837

( Q+ L; v x. a) o' h* F8 O 0 Z. Z: P/ ^3 w6 Z

4    14.594900639351332

$ `) V7 ^" F2 B % K7 H6 y% q" V: i

5    14.149548965142023

7 B# W' L% q7 G( } 3 k/ {& {) z2 |# p" A

6    15.622920072028379

" @5 \/ W( r; U: t+ U% d 7 k3 o5 k; P( O1 ~

Name: tip_percentage, dtype: float64

. E6 Z8 F5 P0 F$ r9 a5 G z 0 N# |4 p8 y2 `& L8 A

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

- i. V; L2 |" F& x2 K$ ?0 o5 c

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

& j r; {9 m* W

安装

+ m: P* S% V2 g. x/ l/ {: ~

conda

% [$ k% h* V1 u* N- E

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

0 |2 w8 _% D' o# q3 S! N2 P4 u & D4 G* E2 P) o; B+ ^* P3 y

# for CUDA 9.2

3 a8 j& g% \1 `7 l

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

   cudf=0.6 python=3.6 cudatoolkit=9.27 A' W4 I F$ Z- M! P " s2 I( h# P) |0 i C+ r

# or, for CUDA 10.0

! V2 o0 E1 b4 G

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

* H/ ~# F" Q7 y/ _# h% [, X& B

   cudf=0.6 python=3.6 cudatoolkit=10.0

' q& \8 p: A9 e3 u U. _ ' I* o- l& ]( C7 h/ M, N2 {

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

& _- J/ g1 j0 U+ O! e$ K( Q

Pip

6 k* N- s* @$ A: c( Y: C5 }

cuDF 也可以用 PyPi 安装。

6 P' }- m* A. w3 I7 ] 2 G9 ^: o1 k. e) q

# for CUDA 9.2

2 ^- Y$ _( a- d" M

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

' W1 Z1 X' K( y" \6 I ' ?# n% n+ m4 }9 I& G

# or, for CUDA 10.0

5 F* k |' P# m/ @' l' e: e( j) {- E

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

0 r0 m/ X* M4 c- d1 h7 E( D7 z @$ O( K2 p8 G9 s

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

- K, J8 ]- Q1 i9 g* \1 M5 T6 c* Q

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

2 s2 E, R/ K1 q% o8 [# X2 D

雷锋网雷锋网

& H6 @; r( i& G9 U% F" n " U+ Q3 K) ^ l5 H0 D: k / A* F, o& H) ^- Y5 f- d k E; L 8 M$ D. x* B. p% _7 z" \4 K5 A1 p* A, S2 M: N# i; y
( I3 P& }/ C% K' ^
. t# r! J9 Q7 m
* D) p$ p3 V/ }( x# Y) i* G$ b. v W5 _* B- s" `/ {! a % i6 W- U) D* }: e + C# t5 W3 r6 P( B 8 r: n5 Z0 Y( |
回复

举报 使用道具

相关帖子

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