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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python GPU DataFrame庫cuDF介紹

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

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

cuDF介紹

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

wKgaomWCkuaAR8bUAAGFfdDehFQ338.jpg

相關(guān)框架介紹

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

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

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

cuDF和Pandas比較

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

支持的操作:

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

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

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

缺失值:

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

迭代:

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

結(jié)果排序:

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

浮點(diǎn)運(yùn)算:

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

列名:

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

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

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

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

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

何時使用cuDF和Dask-cuDF

cuDF:

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

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

Dask-cuDF:

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

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

cuDF代碼案例



審核編輯:湯梓紅

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

    關(guān)注

    27

    文章

    4639

    瀏覽量

    128467
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3544

    瀏覽量

    93492
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    569

    瀏覽量

    40063
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84296

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    基于 Python 的深度學(xué)習(xí)Keras入門知識

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

    常用的Python圖像處理介紹

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

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

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

    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í)行的,在調(diào)用立即執(zhí)行
    發(fā)表于 01-26 14:55

    PyODPS 中使用 Python UDF

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

    Python機(jī)器學(xué)習(xí)常用

    是同類API中最好的選擇之一。以上是Python開發(fā)工程師必知十大機(jī)器學(xué)習(xí),除此之外,還有OverFeat、Nolearn以及Decaf等機(jī)器學(xué)習(xí),在此就不一一介紹了,感興趣的可以
    發(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設(shè)計了一個圖處理GraphFrames。它既能利用DataFrame良好的擴(kuò)展性和強(qiáng)大的性能,同時也為
    發(fā)表于 10-11 10:36 ?0次下載
    基于<b class='flag-5'>DataFrame</b>的圖處理<b class='flag-5'>庫</b>GraphFrames

    Python的常見詳細(xì)資料介紹

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

    如何安裝常用Python

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

    TSMaster小功能—Python小程序如何導(dǎo)入外部

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

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

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

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

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

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

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