<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Python GPU DataFrame庫cuDF介紹

數據分析與開發 ? 來源:coggle ? 2023-12-20 15:05 ? 次閱讀

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

cuDF介紹

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

wKgaomWCkuaAR8bUAAGFfdDehFQ338.jpg

相關框架介紹

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

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

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

cuDF和Pandas比較

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

支持的操作:

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

數據類型:

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

缺失值:

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

迭代:

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

結果排序:

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

浮點運算:

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

列名:

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

沒有真正的“object”數據類型:

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

.apply()函數限制:

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

何時使用cuDF和Dask-cuDF

cuDF:

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

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

Dask-cuDF:

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

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

cuDF代碼案例



審核編輯:湯梓紅

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

    關注

    27

    文章

    4478

    瀏覽量

    127192
  • 編程
    +關注

    關注

    88

    文章

    3450

    瀏覽量

    92708
  • 數據結構
    +關注

    關注

    3

    文章

    564

    瀏覽量

    39937
  • python
    +關注

    關注

    52

    文章

    4698

    瀏覽量

    83610

原文標題:再見Pandas,又一數據處理神器!

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

收藏 人收藏

    評論

    相關推薦

    OpenHarmony開源GPUMesa3D適配說明

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

    2017年10大Python總結

    ,我們以博客的形式貼出了Python社區中流行的好作品?,F在,以同樣的方式來為2017年做個總結。這次的榜單充滿了濃濃的機器學習風,請那些非機器學習的大神見諒,不過,這次我們確實有點兒偏心
    發表于 01-23 14:48

    PyODPS DataFrame:統一的數據查詢語言

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

    PyODPS 中使用 Python UDF

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

    Python高性能計算—Numba

    本文介紹一個新的Python——Numba,在計算性能方面,它表現的更加友好。1. Numba是什么?Numba是一個,可以在運行時將Pytho
    發表于 03-14 15:24

    Python機器學習常用

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

    Python存儲數據詳解

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

    在PyODPS DataFrame自定義函數中使用pandas、scipy和scikit-learn

    背景PyODPS DataFrame 提供了類似 pandas 的接口,來操作 ODPS 數據,同時也支持在本地使用 pandas,和使用數據來執行。PyODPS DataFrame 除了支持類似
    發表于 05-17 19:48

    Python的skimage詳解

    Py之skimage:Python之skimage的簡介、安裝、使用方法之詳細攻略
    發表于 12-27 10:04

    【建議收藏】Python大全

    ` 通用urlib -網絡(stdlib)。requests -網絡。grab -網絡(基于pycurl)。pycurl -網絡(綁定libcurl)ullib3 -
    發表于 09-06 15:58

    數據處理主要方法之DataFrame類型

    數據處理主要方法_DataFrame類型(1)
    發表于 06-16 16:10

    使用python包apriltag對AprilTag進行檢測

    AprilTags二維碼的檢測與應用1 AprilTags介紹2 使用python包apriltag對AprilTag進行檢測2.1 python模塊apriltag的安裝2.2
    發表于 08-17 06:23

    基于DataFrame的圖處理庫GraphFrames

    也為Scala、Java和Python提供了統一的圖處理API。 GraphFrames 與Apache Spark的GraphX類似,GraphFrames支持多種圖處理功能,但得益于DataFrame因此
    發表于 10-11 10:36 ?0次下載
    基于<b class='flag-5'>DataFrame</b>的圖處理庫GraphFrames

    介紹pandas的兩種數據結構

    說到 DataFrame,可能大家更熟悉的是R語言中的 data.frame,Python中的 DataFrame跟它也較為類似。在Python中,
    的頭像 發表于 07-25 17:50 ?5381次閱讀

    如何實現Pandas的DataFrame轉換交互式表格

    Pivottablejs是一個通過IPython widgets集成到Python中的JavaScript庫,允許用戶直接從DataFrame數據創建交互式和靈活的匯總報表??梢赃M行高效、清晰的數據分析和表示,幫助將數據從Pandas
    的頭像 發表于 11-21 16:15 ?445次閱讀
    如何實現Pandas的<b class='flag-5'>DataFrame</b>轉換交互式表格
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>