0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python GPU DataFrame庫cuDF介紹

數(shù)據(jù)分析與開發(fā) ? 來源:coggle ? 2023-12-20 15:05 ? 次閱讀

cuDF (Pandas GPU 平替),用于加載、連接、聚合、過濾和其他數(shù)據(jù)操作。

cuDF介紹

cuDF是一個基于Apache Arrow列內存格式的Python GPU DataFrame庫,用于加載、連接、聚合、過濾和其他數(shù)據(jù)操作。cuDF還提供了類似于pandas的API。

wKgaomWCkuaAR8bUAAGFfdDehFQ338.jpg

相關框架介紹

cuDF:cuDF是一個Python GPU DataFrame庫,它基于Apache Arrow的列式內存格式,用于加載、連接、聚合、過濾和以類似pandas的DataFrame風格API操縱表格數(shù)據(jù)。它允許數(shù)據(jù)工程師和數(shù)據(jù)科學家通過類似于pandas的API輕松加速其工作流程,而無需深入研究CUDA編程的細節(jié)。cuDF的設計旨在在GPU上處理大規(guī)模數(shù)據(jù)集,提供了對數(shù)據(jù)處理任務的高性能支持。

Dask:Dask是一個靈活的Python并行計算庫,使得在工作流程中平滑而簡單地實現(xiàn)規(guī)?;?。在CPU上,Dask使用Pandas來并行執(zhí)行DataFrame分區(qū)上的操作。它允許用戶以更大規(guī)模處理數(shù)據(jù),充分發(fā)揮計算資源,而無需對代碼進行大規(guī)模更改。

Dask-cuDF:Dask-cuDF在需要的情況下擴展Dask,以允許其DataFrame分區(qū)使用cuDF GPU DataFrame而不是Pandas DataFrame進行處理。例如,當調用dask_cudf.read_csv(...)時,集群的GPU通過調用cudf.read_csv()來執(zhí)行解析CSV文件的工作。這使得在GPU上利用cuDF的高性能數(shù)據(jù)處理能力,從而加速大規(guī)模數(shù)據(jù)處理任務。

cuDF和Pandas比較

cuDF是一個DataFrame庫,它與Pandas API密切匹配,但直接使用時并不是Pandas的完全替代品。在API和行為方面,cuDF和Pandas之間存在一些差異。以下是cuDF和Pandas之間的相似之處和差異的對比:

支持的操作:

cuDF支持許多與Pandas相同的數(shù)據(jù)結構和操作,包括Series、DataFrame、Index等,以及它們的一元和二元操作、索引、過濾、連接、分組和窗口操作等。

數(shù)據(jù)類型:

cuDF支持Pandas中常用的數(shù)據(jù)類型,包括數(shù)值、日期時間、時間戳、字符串和分類數(shù)據(jù)類型。此外,cuDF還支持用于十進制、列表和“結構”值的特殊數(shù)據(jù)類型。

缺失值:

與Pandas不同,cuDF中的所有數(shù)據(jù)類型都是可為空的,意味著它們可以包含缺失值(用cudf.NA表示)。

迭代:

在cuDF中,不支持對Series、DataFrame或Index進行迭代。因為在GPU上迭代數(shù)據(jù)會導致極差的性能,GPU優(yōu)化用于高度并行操作而不是順序操作。

結果排序:

默認情況下,cuDF中的join(或merge)和groupby操作不保證輸出排序。與Pandas相比,需要顯式傳遞sort=True或在嘗試匹配Pandas行為時啟用mode.pandas_compatible選項。

浮點運算:

cuDF利用GPU并行執(zhí)行操作,因此操作的順序不總是確定的。這影響浮點運算的確定性,因為浮點運算是非關聯(lián)的。在比較浮點結果時,建議使用cudf.testing模塊提供的函數(shù),允許您根據(jù)所需的精度比較值。

列名:

與Pandas不同,cuDF不支持重復的列名。最好使用唯一的字符串作為列名。

沒有真正的“object”數(shù)據(jù)類型:

與Pandas和NumPy不同,cuDF不支持“object”數(shù)據(jù)類型,用于存儲任意Python對象的集合。

.apply()函數(shù)限制:

cuDF支持.apply()函數(shù),但它依賴于Numba對用戶定義的函數(shù)(UDF)進行JIT編譯并在GPU上執(zhí)行。這可以非??焖伲珜DF中允許的操作施加了一些限制。

何時使用cuDF和Dask-cuDF

cuDF:

當您的工作流在單個GPU上足夠快,或者您的數(shù)據(jù)在單個GPU的內存中輕松容納時,您會希望使用cuDF。

當數(shù)據(jù)量不大,可以在單個GPU內存中處理時,cuDF提供了對單個GPU上高性能數(shù)據(jù)操作的支持。

Dask-cuDF:

當您希望在多個GPU上分布您的工作流程時,或者您的數(shù)據(jù)量超過了單個GPU內存的容量,或者希望同時分析許多文件中分布的數(shù)據(jù)時,您會希望使用Dask-cuDF。

Dask-cuDF允許您在分布式GPU環(huán)境中進行高性能的數(shù)據(jù)處理,特別是當數(shù)據(jù)集太大,無法容納在單個GPU內存中時。

cuDF代碼案例



審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    27

    文章

    4591

    瀏覽量

    128144
  • 編程
    +關注

    關注

    88

    文章

    3521

    瀏覽量

    93270
  • 數(shù)據(jù)結構

    關注

    3

    文章

    568

    瀏覽量

    40030
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84080

原文標題:再見Pandas,又一數(shù)據(jù)處理神器!

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于 Python 的深度學習Keras入門知識

    (GPU)。大部分后端取決于其他軟件,例如,NVIDIA? CUDA? 工具包和 CUDA 深度神經(jīng)網(wǎng)絡 (cuDNN)。
    的頭像 發(fā)表于 05-14 04:05 ?5732次閱讀

    常用的Python圖像處理介紹

    本文主要介紹了一些簡單易懂最常用的 Python 圖像處理
    的頭像 發(fā)表于 08-19 10:54 ?1901次閱讀

    動態(tài)封裝成python模塊的方法

    之前的文章 將靜態(tài)封裝成 python 模塊中講解了如何將靜態(tài)封裝成 python 模塊,靜態(tài)封裝相對來說還是有點復雜,今天來
    發(fā)表于 07-13 15:24 ?524次閱讀

    OpenHarmony開源GPUMesa3D適配說明

    : Dayu200-rk3568 一、背景介紹 OpenHarmony對圖形的渲染,支持CPU和GPU兩種方式。為了支持流暢的用戶體現(xiàn),GPU適配是必不可少的。OpenHarmony使用GPU
    發(fā)表于 12-25 11:38

    PyODPS DataFrame:統(tǒng)一的數(shù)據(jù)查詢語言

    摘要: 前幾天,PyODPS發(fā)布了0.7版本,這篇文章給大家介紹下PyODPS新版本帶來的重要特性。 之前也有若干篇文章介紹過了,我們PyODPS DataFrame是延遲執(zhí)行的,在調用立即執(zhí)行
    發(fā)表于 01-26 14:55

    PyODPS 中使用 Python UDF

    摘要: PyODPS 中使用 Python UDF 包含兩方面,一個是直接使用,也就是在 MaxCompute SQL 中使用;一個是間接的方式,也就是 PyODPS DataFrame,這種方式你
    發(fā)表于 01-29 14:29

    Python機器學習常用

    是同類API中最好的選擇之一。以上是Python開發(fā)工程師必知十大機器學習,除此之外,還有OverFeat、Nolearn以及Decaf等機器學習,在此就不一一介紹了,感興趣的可以
    發(fā)表于 03-26 16:29

    Python存儲數(shù)據(jù)詳解

    =pd.DataFrame(columns=name,date=list)test.to_csv(‘E:/test.csv’)3. MySQL數(shù)據(jù)MySQL數(shù)據(jù)庫存儲方式是使用Python數(shù)據(jù)存儲最常
    發(fā)表于 03-29 15:47

    基于DataFrame的圖處理GraphFrames

    近日,Databricks和UC Berkeley及MIT一起為Apache Spark設計了一個圖處理GraphFrames。它既能利用DataFrame良好的擴展性和強大的性能,同時也為
    發(fā)表于 10-11 10:36 ?0次下載
    基于<b class='flag-5'>DataFrame</b>的圖處理<b class='flag-5'>庫</b>GraphFrames

    Python的常見詳細資料介紹

    由于設計者和開源社區(qū)的共同努力,在python中有大量優(yōu)秀的可以被直接調用以高效地完成不同需求的工作。這里列舉一些常見常用的
    發(fā)表于 06-16 16:37 ?29次下載
    <b class='flag-5'>Python</b>的常見<b class='flag-5'>庫</b>詳細資料<b class='flag-5'>介紹</b>

    如何安裝常用Python

    使用常用的Python是非常重要的一步。本文將介紹如何安裝常用的Python,以幫助您在Python
    的頭像 發(fā)表于 04-14 12:11 ?1022次閱讀

    TSMaster小功能—Python小程序如何導入外部

    今天給大家介紹TSMaster功能之Python小程序如何導入外部。通過在TSMaster默認的解析器路徑下導入外部介紹,以便我們去使
    的頭像 發(fā)表于 08-14 10:06 ?994次閱讀
    TSMaster小功能—<b class='flag-5'>Python</b>小程序如何導入外部<b class='flag-5'>庫</b>

    python有什么用 如何用python創(chuàng)建數(shù)據(jù)

    開發(fā)、游戲開發(fā)、機器學習、自然語言處理等領域。 在本文中,我們將介紹如何使用Python創(chuàng)建數(shù)據(jù)。首先,讓我們了解一下什么是數(shù)據(jù)。 什么是數(shù)據(jù)
    的頭像 發(fā)表于 08-28 16:41 ?1060次閱讀

    python讀取數(shù)據(jù)數(shù)據(jù) python查詢數(shù)據(jù) python數(shù)據(jù)連接

    ,獲取數(shù)據(jù)中的數(shù)據(jù),并對數(shù)據(jù)進行增刪改查等操作。本文將詳細介紹Python如何連接數(shù)據(jù)、讀取數(shù)據(jù)數(shù)據(jù)以及如何進行查詢操作。 一、
    的頭像 發(fā)表于 08-28 17:09 ?1601次閱讀

    如何實現(xiàn)Pandas的DataFrame轉換交互式表格

    Pivottablejs是一個通過IPython widgets集成到Python中的JavaScript,允許用戶直接從DataFrame數(shù)據(jù)創(chuàng)建交互式和靈活的匯總報表??梢赃M行高效、清晰的數(shù)據(jù)分析和表示,幫助將數(shù)據(jù)從Pan
    的頭像 發(fā)表于 11-21 16:15 ?679次閱讀
    如何實現(xiàn)Pandas的<b class='flag-5'>DataFrame</b>轉換交互式表格