」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > FireDucks:以零學習成本獲得超越 pandas 的效能!

FireDucks:以零學習成本獲得超越 pandas 的效能!

發佈於2024-11-06
瀏覽:642

Pandas 是最受歡迎的庫之一,當我在尋找一種更簡單的方法來加速其性能時,我發現了 FireDucks 並對它產生了興趣!

與 pandas 的比較:為什麼選擇 FireDucks?

Pandas 程式可能會遇到嚴重的效能問題,這取決於其編寫方式。然而,作為一名數據科學家,我想花越來越多的時間分析數據,而不是提高程式碼效能。因此,如果它能夠執行諸如交換進程順序並自動加速程式效能之類的事情,那就太好了。例如,Process A =>Process B 會比較慢,所以我們將其替換為 Process B =>Process A。 (當然,結果保證是一樣的。)據說資料科學家花費了大約 45%他們準備資料的時間,當我考慮做一些事情來加速這個過程時,我遇到了一個名為 FireDucks 的模組。

從 FireDucks 文件來看,它似乎只支援 Linux 平台。由於我在我的主機上使用 Windows,因此我想從 WSL2(Windows Subsystem for Linux)嘗試一下,這是一個可以在 Windows 上運行 Linux 的環境。

我嘗試的環境如下

  • 作業系統 Microsoft Windows 11 Pro
  • 版本 10.0.22631 內部版本 22631
  • 系統型號 Z690 Pro RS
  • 系統類型基於 x64
  • PC 處理器第 12 代 Intel(R) Core(TM) i3–12100、3300 Mhz、4 核心、8 個邏輯處理器
  • 底板產品 Z690 Pro RS
  • 平台角色桌面
  • 安裝的實體記憶體 (RAM)64.0 GB

安裝與設定 FireDuck

安裝 WSL

WSL 是在以下 Microsoft 文件的幫助下安裝的; Linux 發行版是 Ubuntu 22.04.1 LTS。

安裝 FireDucks

然後實際安裝FireDucks。不過安裝起來非常容易。
pip install fireducks

安裝 FireDucks(以及 pyarrow、pandas 和其他庫)需要幾分鐘時間。

我嘗試執行下面的程式碼,載入速度非常快,pandas 花了 4 秒,fireDucks 只花了 74.5 ns。

# 1. analysis based on time period and creative duration
# convert timestamp to date/time object
df['timestamp_converted'] = pd.to_datetime(df['timestamp'], unit='s ')

# define time period 
def get_part_of_day(hour): 
  if 5 



所有這些數據預處理和分析在 pandas 中大約需要 8 秒,而使用 FireDucks 時可以在 4 秒內完成。幾乎可以實現2倍的加速。

提高性能

使用pandas最有壓力的事情之一是載入大數據集時的等待,然後我必須等待像groupby這樣的複雜操作。另一方面,由於FireDucks進行惰性評估,加載本身根本不需要時間,因此在需要的地方進行處理,我覺得這非常重要,大大減少了總等待時間。

至於其他性能,據該組織官方宣布,與 pandas 相比,似乎已經實現了高達 16 倍的速度提升。 (下次我將與各種競爭庫進行效能比較。)

FireDucks: Get performance beyond pandas with zero learning cost!

零學習成本

無需考慮任何事情就能遵循精確的 pandas 符號的能力是一個巨大的優勢。除了FireDucks之外,還有其他資料幀加速庫,但它們學習成本太高且太容易被遺忘。

例如,如果你想添加帶有極坐標的列,你必須這樣寫。

# pandas df["new_col"] = df["A"]   1
# polars 
df = df.with_columns((pl.col("A")   1).alias("new_col"))

幾乎不需要更改現有程式碼

我有幾個 ETL 和其他使用 pandas 的項目,如果僅通過安裝 FireDucks 並替換 import 語句就能看到性能改進,那就太好了。

如果您想進一步添加,請隨時在下面評論。

版本聲明 本文轉載於:https://dev.to/codewithved/fireducks-get-performance-beyond-pandas-with-zero-learning-cost-9do?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3