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

[复制链接]
; z" T) o" z5 H" ^+ E- Z
! a: ~+ k. J1 D: I8 ~
7 p+ G2 S) C7 v
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
' @' u3 w" l1 M/ @* k; @ p* b" }
6 E M7 s/ e- Z! L0 _; d3 k0 \
7 x; D! U: n2 K- o3 ^
& v3 d% [, V2 V

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

& V, T* f5 L4 g( a" }. L

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

+ Z0 ^4 ~8 ~9 {5 D9 A( y& i! p

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

) ?2 B. X r* {) O* h3 V

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

- K' [2 H/ z0 K

import cudf, io, requests

j0 I! ?; _! z& H

from io import StringIO

. U3 t8 `2 X+ \

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

% ?7 s- w& m+ r R0 E3 z & h) D$ Y i3 I

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

. @$ B8 |- |! B# N

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100: u; c% b7 U" [* ]2 Z & P: y! Q( b: ^6 V H

# display average tip by dining party size

/ X s1 I5 e6 F* \2 l6 q

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

F0 i+ s7 G" e4 Q9 Q' m, E : Q0 i$ D3 a# e5 J9 ?3 }$ |1 e$ p

得到的输出为:

, ^ @4 R- V' S& g3 y/ D + P- ], u# ~; d( m# Q

size

9 S- ? A$ D+ h" B$ X* U 6 b6 E1 Q8 c- {/ Y8 L) n

1    21.729201548727808

' I. D4 \, Y3 [0 T ( ~5 p& l4 n$ N- I8 A: o& m

2    16.571919173482897

6 A- |1 \. \! B' C4 [" p$ c X% a4 B) h' @) T' H

3    15.215685473711837

" J3 y- P) p) z % C7 ^1 P$ |! ?, k5 m

4    14.594900639351332

/ ?: D2 Q/ }7 A , o; z* ~6 i( l7 N# H

5    14.149548965142023

# M# S$ G0 V8 O 1 e( ^% L, D* X B: d# h' r

6    15.622920072028379

9 j7 d; i- x& \ * A, j0 G% y0 V+ i

Name: tip_percentage, dtype: float64

& t; W( `. ?5 @ % H6 W* q% f" Y: F. i) Q

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

( Y5 `% e* L( m# I- o1 w1 _% u2 l2 U

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

" M/ Y& s: j# @0 P! X- o

安装

8 L7 W: c$ a, _% e! \

conda

- Y1 R/ q4 d' x$ S$ s

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

* V) T: [7 C6 [4 ] f# K 7 r( r, M; Q4 V$ ?. Y

# for CUDA 9.2

: L& v: C8 g. J W

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

   cudf=0.6 python=3.6 cudatoolkit=9.2$ M* `. [, f7 V* ` % E' O. h; L6 _9 c

# or, for CUDA 10.0

) F' s0 m& Z% d. ~8 Z+ l

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

; I: H$ x6 r& y6 d

   cudf=0.6 python=3.6 cudatoolkit=10.0

/ K' j, G$ f: M7 I/ w9 L4 w0 N 1 W# A1 N j& }; U! O( R8 F" R/ K7 C; u

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

$ |* z C1 C3 } e4 T

Pip

4 u, f* ` i- b% P

cuDF 也可以用 PyPi 安装。

5 ?2 ^9 t7 ]& r9 q1 r6 ~. K( u* T2 Q6 `( _! D

# for CUDA 9.2

! P4 c9 ^0 X4 a, A A8 H

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

! \8 a" v9 w* @9 r; y7 W C9 s 5 R4 n$ S# Z. R9 s2 \9 E/ s! Y+ b

# or, for CUDA 10.0

0 E" m$ v) b+ g7 @$ }6 r: k

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

4 h' G) U5 p6 d( i& X7 ^: ? F- }7 { " N8 C, u# p. [" a

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

6 }2 k# B6 F! T' K; A) |

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

9 y1 F& m5 J; Z% B

雷锋网雷锋网

{2 ]9 [, m3 ^# T- ]# l) P3 i, }9 S7 w ; Z8 f) k* o6 V' t 1 |: [1 d3 _" X. g% l. A5 t& w+ o P- A! d" s. z8 A2 V
. A4 f0 O- e# O/ D
( y- k9 H8 Q2 F# ~
j+ E6 s" R9 F) O% V 2 c8 |& A- u/ K0 K5 C* g r( r6 z6 L2 U( |6 j5 i ! e. P2 r: O) k5 a & v6 }8 ?1 X2 q+ W
回复

举报 使用道具

相关帖子

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