& 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