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

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

[复制链接]
8 |5 w! A! K1 u5 B) ^
4 ]' g8 z3 Q4 x
4 F; }- Q: n- b4 O" p( y
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
, k; }( W. e% U. V; W8 [3 O- I
" z: j( h# _: M- \$ L
4 `/ Y+ T: q$ f# @; A: n
, a1 W4 y# E5 n) h

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

- l) Y) Z6 Q& @/ g2 ~ s) D6 M

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

7 Z8 [. {+ X3 a: p6 e% u

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

- g4 M) H/ a5 }' i) P

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

0 Y$ [7 ~; J8 U) U! n' [

import cudf, io, requests

! W( j& D: x: W! R0 [

from io import StringIO

0 ] w: m9 O! r t

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

8 i% W7 o7 g8 l8 a ; ?6 t- b$ E& q' x. {" u9 U

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

* Q+ _$ M; {) V

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100 T) ^6 S# ~, M/ z* N- |! @ ) |* B7 @2 m: a ?: l8 G3 L; R

# display average tip by dining party size

, d6 {& ]0 d9 P5 f" {

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

2 P/ T4 X' Q( Y t" V0 c: ]6 A+ Y % m0 W1 M* S2 a) {

得到的输出为:

+ Z7 k" r. G/ v r3 A + v# w3 `- o( B t: A. W

size

2 h) ^( w- b( }1 n% E( g3 \ ! ]5 k5 S1 m9 ~4 N

1    21.729201548727808

% B( w+ C# A, ^9 o" m/ k) y+ o, `/ i; O

2    16.571919173482897

( {& o- M( r. l/ ~* B4 X 5 g8 { l$ J, Z% E* E+ j

3    15.215685473711837

* o% g% J& C' O3 {9 r* U$ {) Q! a8 o9 f6 ]8 K$ Z1 C

4    14.594900639351332

# F$ }- L& \1 a ! X, \: I4 Y7 v1 @# @! H' |

5    14.149548965142023

' r/ I% L# E7 U9 F F4 i$ _ ( I$ e9 q! E9 Y% p J5 u- R

6    15.622920072028379

7 E& y- V# n+ @ 8 k& a1 ~* M) o( N

Name: tip_percentage, dtype: float64

1 E, x+ L4 ^0 G; |. a ) Z3 D3 C! N( `# z1 j# ^

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

1 m/ d7 H' n1 u. }) X2 j6 [" A: |& o

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

+ [# a5 z; N- ?" |3 s+ ?

安装

0 V" ~5 o* Q) u" K# I

conda

- V& j( B1 \( s. s$ s

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

6 ~! F$ X. K4 } W; U. S ) |" a' Q: G% ^8 D$ X* \2 M0 i

# for CUDA 9.2

, P/ Z1 A8 w% g* [' I

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

   cudf=0.6 python=3.6 cudatoolkit=9.2# ?6 [* \0 Z/ p( C' Y$ } 6 z% m+ H! E' {9 l7 c, A

# or, for CUDA 10.0

; d: T7 e- T( t0 d, }" o

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

6 U: w8 D+ b7 X2 b

   cudf=0.6 python=3.6 cudatoolkit=10.0

! _: z3 P- N6 V# ^! z6 L H( A# v! |' n- I0 U" w0 Q* s! l; A( u

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

9 }: b& o# U" l

Pip

7 D* C: ^: _' D* w

cuDF 也可以用 PyPi 安装。

3 w c- A8 n+ ?% j2 Y, P' N/ R) p9 d- l8 D& a# \

# for CUDA 9.2

. \# k5 ]7 ~2 [8 \7 x

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

6 s9 o9 F" z) J7 `4 X& t7 v# K8 K; Q 9 W5 C- J1 n: R: E

# or, for CUDA 10.0

" `* I1 S0 n5 L" v& I; w

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

0 Q% M! K3 E' }6 C5 T8 A % P. y' u5 Y! H+ ]) m

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

% R+ p" j9 n' V" x j

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

6 _! B5 e; j; @+ L& i; p

雷锋网雷锋网

, N; V" B) {2 [, B C. g ! v( ?0 S! A2 ? ' h( G# g" m4 S/ H) b q5 [, p - @: t s0 Y) k$ b0 M2 k S : h. _, g9 x# g, T9 _
3 W# f" {) ?( r' }" @
& q0 T9 m4 x3 l4 V1 S4 {4 f
" [8 B* ]$ p# B. F + U5 f7 t8 J* Y / Q& Z' G! F$ i" @; \$ v7 z . j& V9 D2 |4 l3 B ) z. `6 m) d" }8 Z. a2 M# n9 K
回复

举报 使用道具

相关帖子

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