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

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

[复制链接]
( K2 D S4 P3 e3 u9 N4 g
3 u" y+ T. d/ Q
( {* X8 u7 W0 k/ E$ k, X
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
- j5 s# C6 h8 Y- n* O2 ]
( o; [0 ?8 x& g3 t. I
- i0 b9 R7 ?% v
1 X; t; |2 D9 d- x4 T

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

- u3 A# t$ w) q) C; C R

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

- }' k" j6 z% d$ n# x1 K/ @

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

" t5 ]( ?9 b6 g) C) P8 X+ m

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

% c: U! p- N* I2 e5 v4 F* ]" i

import cudf, io, requests

% D1 ^4 C( t$ D$ J

from io import StringIO

4 \/ U4 N1 r: c2 S; ]

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

' N. I' H6 s% I! d# ?! t 7 v2 I* ^, V* G! {/ K8 E- }9 I

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

6 V7 R( X2 y+ u8 d2 @

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 ( b% f6 ~8 V& L 2 ~+ a" S5 {, ?4 r2 A; [0 K

# display average tip by dining party size

2 R4 I$ F) b/ d$ D2 P1 k: R; W

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

% B+ K1 O I/ y. S1 \1 @1 P3 W: o' o, ~

得到的输出为:

; m+ O9 d7 d; B * t8 }* B% F- a. ]

size

8 J8 B, a) G5 k' @4 H1 g 8 c" b6 D: J0 {% _6 ^- n" s+ i9 }

1    21.729201548727808

- Q7 k& B4 {5 R0 J - Z' y, ^( d* E# y

2    16.571919173482897

; w- Q* [/ c1 y: v5 ?1 l8 R ! D( Q! N# W/ t

3    15.215685473711837

3 }" M- M, T/ q6 y2 T# B 4 t2 l; ]2 O3 ~: n. g0 i' d

4    14.594900639351332

6 p: d1 J, T% a5 [% I S9 ]3 d 4 z6 [ s" ?' F8 q$ o

5    14.149548965142023

( l( L0 J2 ~2 I# c, G4 C $ u- D! W V7 Z4 C$ q

6    15.622920072028379

3 Y, H0 K5 A5 G( e' t4 w8 H / G2 k& _* A# s8 Z" f

Name: tip_percentage, dtype: float64

, T0 r3 H% {' M, t7 `! o- P+ W J/ A+ B

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

' G. I1 r1 Z, u1 F- s! x

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

% S8 F- v# L9 F, P! ?$ t4 l

安装

* [, C' `% T+ w. q# Y- k) |# r9 a' P

conda

. E& {/ F+ W, w! M( p7 P. a

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

: ?, v0 ^% w, _5 ~+ k+ y. A; P: I3 Y V

# for CUDA 9.2

# h# m# |( C( n* x

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

   cudf=0.6 python=3.6 cudatoolkit=9.2! Z& n& y# S! O+ Z7 { " F& C5 r/ e; P3 S, r

# or, for CUDA 10.0

7 a d _7 w6 N2 x* w6 b1 H

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

5 _ d% U* O! p6 s; Q. @! o

   cudf=0.6 python=3.6 cudatoolkit=10.0

% l6 X9 j* w( F! k & z/ r' x9 a5 H- b

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

6 X# M$ r' W1 I( x) }5 F

Pip

# F& f; B/ A( @% K* @

cuDF 也可以用 PyPi 安装。

. F$ o" y( e$ L1 d* z8 ]) a ) A/ `9 T+ }1 @% {

# for CUDA 9.2

/ n" n; m. \1 K. \

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

2 e" N* D$ q9 @; T+ [ # W) T* n7 N( I" _! ], c+ [: [

# or, for CUDA 10.0

/ n& a3 ~3 Y7 s( d0 m; ~7 b, l( H

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

6 v, Z: \' U! ~1 x& S ) B8 A0 U1 Y0 n* x$ ]2 Z$ j* _' S

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

+ y: U4 L# H8 {: |

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

5 E1 V, r4 C! j* \- {

雷锋网雷锋网

* ^2 I. l; e0 R4 N" s- V 8 t+ t* X1 U9 d3 ?. ~% D 9 V, p n6 d) d+ [ 7 |; A0 ]2 Q8 X- Q1 v- p& ~( E, t4 K9 y1 O$ y. f7 ^
* W7 I5 w2 [! e
* P* H& r2 A4 e% L. h6 z, R) }9 h
3 C: @5 b) h& \' X 6 n3 b d0 E: f: w8 j5 U0 `- T9 k# s- i. j7 j" m- } * v5 C: U, A3 ?) H* D$ S/ G4 L# [; c G% @: F$ h1 b9 E8 {
回复

举报 使用道具

相关帖子

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