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

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

[复制链接]
4 `9 R6 ?- h' Y0 r6 s5 Y0 T; V
! M. |* K) z! Y4 g0 L! p, V
% c5 M8 c6 G8 c2 ~
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的
! J% o; r! @ i% I) r- I& m
# y L/ s6 [ z& n5 I) O
/ j, f( ~+ q. u) z: O5 l o; P
6 @# [6 X/ N; N. e

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

* P$ V) N5 T0 \! H% E- Y

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

6 Z0 y( o; v$ j) C

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

% o( ^* E' |' e/ Y( J

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

: c: y: g) W2 H1 S( G% E

import cudf, io, requests

/ |1 E0 x) s; b$ Z2 z: \; t. {. ]

from io import StringIO

, B! |2 M' Y' m4 c) D8 s

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

0 \4 d! N8 k6 j! z 4 K$ m: B# i3 g, H( k5 l: r1 d3 m

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

9 J9 l- @' m) U2 @7 p6 C8 h

tips_df = cudf.read_csv(StringIO(content))

tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100$ B/ _) H0 _3 }0 |6 f3 t5 r7 i * x/ E9 S( K) o# W

# display average tip by dining party size

2 ^/ @3 f( {+ |- {( @

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

* C. o0 C0 ]* d3 z5 e/ O o& W* i" Y5 y8 m( C+ f' A

得到的输出为:

: {0 b: q1 z* E0 \9 R$ n% t. T, f. ]$ [9 C$ l/ v$ A* A# y; w9 | Z

size

- y- j; e8 p3 i9 n J: O5 N, {, Y; _: g

1    21.729201548727808

: h6 M6 V) p9 ?3 P2 T0 n : `* T" N# Z; k& A( R/ \7 u

2    16.571919173482897

5 B8 G+ l, r# ? F0 ^2 }; s K+ m! s& }" i

3    15.215685473711837

) M: n! Y8 l# U! V; z& \. q! n 9 D z0 c9 R1 d( o8 I' q( W( }' O

4    14.594900639351332

* a x6 }1 n9 p! T; e1 N 4 i& U, P+ e8 B. s

5    14.149548965142023

' p+ V- Q! `: D. O2 u3 n2 k 1 g1 j3 J( Y, Q a! T8 t

6    15.622920072028379

( l- s1 ]8 @( x, I Q A ! R7 C$ W* B% o7 z

Name: tip_percentage, dtype: float64

: l) Y( }' r/ z" q( {7 Q h/ X 4 F$ G2 \6 N: P- o' R9 P

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

# S/ M& ?# l/ H: J' Z- _

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

5 e5 _+ r$ ~: t

安装

* r! y ]( s8 B4 c. |; p- t

conda

2 r2 k z) V7 x- b0 @6 a8 V

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

: Y8 S) v0 k+ e8 ]* Y4 B ; o7 |$ V' W! d2 H: ~+ m

# for CUDA 9.2

, V% p3 @. J) N0 ]1 @/ A$ b

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

   cudf=0.6 python=3.6 cudatoolkit=9.2 ! w5 [- M( U. h9 N3 ?5 M; l. u8 u( i# ?, y+ z

# or, for CUDA 10.0

/ m2 e2 H1 A- S9 w. k% b) m$ O9 {

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

# Y7 K9 f) k: u2 ?# v3 J

   cudf=0.6 python=3.6 cudatoolkit=10.0

* V* R( p+ @6 \& ~: { 2 H4 ^' f3 I# ]9 o6 ~

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

9 B1 m* Z \1 A! t' o- E

Pip

; m5 V% M7 y7 L. G

cuDF 也可以用 PyPi 安装。

2 C( X1 p9 @- M# t* m' x C" y% w/ I& D" l/ x) T! i

# for CUDA 9.2

- B$ F$ Z) y1 {8 z

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

Y. y- I/ _. W* n) |- n * N7 D: U6 N# l/ f( O% x f

# or, for CUDA 10.0

8 o( r% R/ L) D. n

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

! q P- R8 z0 q 1 l5 y8 G2 b, n

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

, `. {( c6 W! @9 @& e3 V

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

7 }2 B" ?+ G6 A$ j8 P" H

雷锋网雷锋网

9 U9 P7 H0 ` U$ o4 C4 [" n' E2 `. k 9 F' C% S4 G3 A F1 `3 K+ W4 v) Y+ A - ?# i) Z9 H- L- O1 g! H9 S / O3 L, `+ C+ H/ t7 e7 W) z
- |( O3 H; a4 n/ ? |
1 e% Z! u; D4 I3 v I$ W
' q& f) H( c7 T' z % p1 Z ~! {9 K0 `* V 4 l7 t3 D; _+ u P! E# r! W/ }. d! S5 f * S+ z, b- p8 P, S; Z$ P0 ^% ?9 E
回复

举报 使用道具

相关帖子

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