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

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

[复制链接]
3 l! H$ c3 z6 q! W$ L9 X& k0 V
9 v( b$ k0 r$ p. f0 A
- m7 T. @9 Z$ D! b& A
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
% m; j3 N4 g# z0 N
# I( [( P( n# l
; K6 `4 @( c: f9 q0 r
! K8 c" o, Q/ ?* ^$ p z4 y

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

9 p3 n, N) S" V$ z) C* l$ D

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

, P% e8 f, H' ]" a+ P- h; ]' ]* v% t, B

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

( ] m, F2 j0 `" K# t+ l& u

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

1 H8 d3 D% ?/ X6 M6 D( ]

import cudf, io, requests

, a/ X0 Z' U+ X) f! y' y

from io import StringIO

- B1 I, l# F. ]% n& F' P1 }, `

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

- F! I# ^5 F0 u2 S. U' L5 V$ O! E y' H

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

+ p' S6 Q. o) U

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*1005 O3 m+ |% y, O" e - ~: C3 @* |8 R+ ?

# display average tip by dining party size

4 i( S1 w- [. N: F7 y

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

# B- u3 s) t; }! B; Q8 g - [$ h$ q4 f: C5 G8 k) ?0 u( v0 L

得到的输出为:

' Y: H, O+ q9 N- U! U5 c3 i * [" ~) Z! |" e2 K6 ?

size

- J. s, t6 d5 Q8 _) O ' }9 ~, u6 B* i7 [) J6 p' G

1    21.729201548727808

" ]6 U/ ?2 S- T9 q- ` v7 c2 u ( F9 @1 m" D& r! U

2    16.571919173482897

m, \7 Q4 [ K4 c6 `# @ ?) z: y6 y* P; v

3    15.215685473711837

% N- @2 z" i6 z) X ( u; `- g- r5 I( U

4    14.594900639351332

9 u: j& f9 Z1 q5 ` m% Z; k f5 i) }6 A' r

5    14.149548965142023

' L; N- F5 f4 V1 W4 ^6 |2 n' L4 C t8 P: R p$ H

6    15.622920072028379

% H/ {8 Y) x6 g# G) A* d9 `! W. b8 _! E8 v9 M/ d5 ?" R6 L

Name: tip_percentage, dtype: float64

( @; ]+ z j4 d/ X4 ] l$ z 8 H2 \" c, w, V6 I) F# {' I) z1 Q

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

, C' S2 g# i( M2 o h

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

; q; X; C6 v, d' \

安装

6 h! r7 a( Q6 L2 a2 n" h# k

conda

8 k! `( U. U8 G: Y8 m1 u( ?) O

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

8 \: |! I/ \& s: r/ l# o$ N) L, M+ a ! k- z% z" I1 b* r$ `

# for CUDA 9.2

0 f8 S- \) ?. T% [" V8 ^

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 ! G) {/ ]: Z* \$ a# `0 M; L9 ~" S6 N, I) L& g7 ^" c

# or, for CUDA 10.0

. M! E8 I& s) p* o/ B& @4 k4 M

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

4 v( V" m% Q6 z1 a% i6 [* p

   cudf=0.6 python=3.6 cudatoolkit=10.0

) {0 \% |! V1 A) b7 p # G; e# H# D. x' w7 K

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

2 q4 X. |, Y6 _& B

Pip

# M" ^( j& X- |4 q+ ^- L7 I! ~

cuDF 也可以用 PyPi 安装。

$ l5 p/ F9 A" K) Z J4 R% p6 i 8 w, ?$ ~. v% Q2 w3 y- w% W

# for CUDA 9.2

0 L; [; y& B( [: q+ u$ a1 ]3 d

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

# X4 O; V3 [! H8 a* O# F, l * p8 d/ I2 o# W7 J. G: ^& C$ G6 L

# or, for CUDA 10.0

- _0 _* }; E. f

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

3 w$ \. g) Z2 ~( H2 { , ]! _- T* B8 p9 b- F

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

' a$ b3 M( n3 V( Y: w. r; p

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

( E6 Y( k0 Q" o+ Y% F1 j

雷锋网雷锋网

1 F3 @: u) }5 J1 N/ a$ |" a 5 Y; C2 I0 o4 k8 u9 C D" d* J7 n( ]. [ 6 o; `2 W" t- j$ Z# h3 h1 U4 |7 T S0 y$ L3 E$ m
6 a6 q# m4 s- S9 x
7 k: R Q# M5 | v
9 f0 x T% \$ R; N! T( [, V) p4 w , k* g7 {' R+ T% m& G4 w. V+ o2 I; e& W # W# Q3 g# W' a8 L4 _: v3 R0 o4 ?) D5 G: L9 _0 f) w; l ]
回复

举报 使用道具

相关帖子

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