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

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

[复制链接]
( R5 X$ o+ {$ |+ r; q' _
% H: L) J4 m9 y* v
+ h5 t" L/ Y6 r( v& \& W
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
- q e; w" q1 A4 R. i9 r
% l5 U) f' ~& L7 W! Z
* X. g' T$ A9 B3 V/ u: w
9 ^+ { z" x$ C# |' [9 R3 {

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

$ ^5 X, b3 n9 N. Z0 t1 m

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

* @0 `) R8 `& K5 ]

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

7 ^# [2 c: p" Q6 y: E

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

+ s- D" Y- u S7 [: F6 i

import cudf, io, requests

3 ^* ^" b+ Q, Z' L/ q H) j

from io import StringIO

! L. R: c0 X! \

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

# S8 p ]9 F* A8 A+ G; A! F' n/ _/ L3 o& ^

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

- t% j* N! L2 \& v4 x

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100- Y) b9 U( C& [0 D2 i - d8 b% R4 F6 X& z# y; d3 H3 ]; g

# display average tip by dining party size

! `0 G7 H. W+ Z! y0 a' f) P

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

6 x1 `" r0 f2 t# |+ D4 y- _4 n7 W $ Y6 X% L# ^ i. r

得到的输出为:

/ s6 S8 ~* x- f% ^/ |7 g 1 x9 w. f; U M; A+ g

size

( l& ~% Q9 G- x$ y3 J* j, t+ ]+ p4 a

1    21.729201548727808

5 b1 b( r* e2 v4 Y# q6 V3 m 8 X) w+ n$ j* |* g% f

2    16.571919173482897

* l( T% k4 S2 _ ) w S% Z0 c# {

3    15.215685473711837

& o6 Y0 Q3 Y* Q" P! h. U Q% \6 M* @) H0 F5 a9 j& r

4    14.594900639351332

/ f. M' N7 X& o- z & W* s- o6 K \0 Q/ p U

5    14.149548965142023

) W0 H7 Y" ]% c) W2 y 0 z& P4 n3 M4 W3 d2 [' G( ]

6    15.622920072028379

& F, E9 d. T b: n 9 j, E% O, \% D4 M1 i, |% B

Name: tip_percentage, dtype: float64

3 P& j, Y* V0 D, n' E m9 S 0 y7 u% c5 b' Q1 F3 ~ K* o8 h

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

' k! l" K4 y0 N0 L: ^8 b

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

" s! K9 r: X. F& e( _* S6 c% k+ c

安装

) h/ v( W# b3 {2 O* v/ z3 w

conda

* o% l N3 y& S1 w# |0 U: W

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

$ f9 R3 J( M% w! U ! O: U6 L P, J1 F! ?

# for CUDA 9.2

8 {. ^( y, `( Q+ j& c

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

   cudf=0.6 python=3.6 cudatoolkit=9.29 v* T2 ~6 ]! k' k6 b+ Y7 H , U# n# ?. @& w, x# ?

# or, for CUDA 10.0

' a0 o- g% M& g6 a: F0 G }+ I- J

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

- V! F" M! w3 @) ]8 O T

   cudf=0.6 python=3.6 cudatoolkit=10.0

f/ F! |- B1 f- l5 W ; H& `: B9 |. q0 T) E1 F

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

, V3 }7 Z6 t" i+ m

Pip

. W+ x; N3 C' b- l4 Z/ S

cuDF 也可以用 PyPi 安装。

! M, t% @0 P, {4 U 1 u6 |7 z0 C0 u7 ^1 Y( z$ z

# for CUDA 9.2

8 K0 L; Y3 t' t3 `! P6 ] e

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

5 t ]4 O% `0 S% `0 M0 x8 P' ?; o. S, J5 C6 a& q: [9 K

# or, for CUDA 10.0

% G& K3 q5 I* |/ [0 C" U/ H

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

- S4 j k" E/ E: F9 x! ` 7 K. H1 o$ L: l. H, }

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

6 i" @, J& ]9 R w! u

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

+ m0 q- d0 Q* o; L1 g0 Y

雷锋网雷锋网

, X, m8 h" I& ]/ |5 l% V1 f; y! ]$ j* w+ T1 s& H. O* Y) L ; [" Q* s7 E8 @; B ! r: }& Q8 r. a5 e9 ]; {) X* l# n* a9 [9 {* I& I, c W/ @
8 O+ j9 V/ f" Z+ X: l- ?
) R. A/ u% s1 w+ R- ~
! h5 y2 k. \+ ?% o* `( N" K , e8 B4 m' R# |* j6 f3 w7 i. l, N! U0 d5 M & F/ Z; |& g+ y. J * n, O0 T& [4 f
回复

举报 使用道具

相关帖子

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