99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請入駐

加速版 Pandas 庫,一個(gè)字,快!

0
分享至


什么是 FireDucks?

FireDucks 是一個(gè)完全兼容 Pandas 的加速庫,它不是要替代 Pandas,而是作為 Pandas 的加速器工作。它允許用戶繼續(xù)使用熟悉的 Pandas API,同時(shí)顯著提高執(zhí)行速度。


FireDucks 的核心特點(diǎn) 1. 完全兼容 Pandas


  • 使用與 Pandas 相同的 API

  • 無需修改現(xiàn)有代碼

  • 可以輕松替換現(xiàn)有的 Pandas 代碼

2. 高性能
  • 比原生 Pandas 快數(shù)倍到數(shù)十倍

  • 特別適合處理大型數(shù)據(jù)集和復(fù)雜操作

3. 兩種使用方式
  • 導(dǎo)入鉤子(Import Hook):不需要修改代碼,自動(dòng)替換 Pandas 導(dǎo)入

    • %load_ext fireducks.pandas import pandas as pd

  • 顯式導(dǎo)入(Explicit Import):手動(dòng)替換導(dǎo)入語句 import fireducks.pandas as pd

工作原理

FireDucks 通過兩種主要方法加速 Pandas 操作:

  1. 編譯器優(yōu)化

  • 將 Python 程序轉(zhuǎn)換為中間語言

  • 專為 DataFrame 操作設(shè)計(jì)的優(yōu)化

多線程處理

  • 利用多核 CPU 并行處理數(shù)據(jù)

  • 類似 GPU 加速的原理

惰性執(zhí)行模型

  • 不立即執(zhí)行操作,而是生成中間語言

  • 只在需要結(jié)果時(shí)(如保存文件、顯示數(shù)據(jù))才執(zhí)行所有操作

  • 批處理優(yōu)化提高整體性能

安裝方法

FireDucks 目前支持 Linux (manylinux) 在 x86_64 架構(gòu)上,可以通過 pip 輕松安裝:

pip install fireducks

要求 Python >3.8, <=3.13(注意:自 FireDucks 1.1.0 起,由于升級(jí)了依賴的 pyarrow 到 18.0.0,不再支持 Python 3.8)

使用方法 方法一:導(dǎo)入鉤子(推薦)

在 Python 腳本中使用:

python3 -m fireducks.pandas your_script.py

在 IPython/Jupyter Notebook 中使用:

%load_ext fireducks.pandas import pandas as pd # 后續(xù)代碼與使用 Pandas 完全相同
方法二:顯式導(dǎo)入

# 替換 import pandas as pd import fireducks.pandas as pd
性能對比

以下是一個(gè)簡單的性能對比示例:

import time import numpy as np import pandas as pd         import fireducks.pandas as fpd   n = 1_000_000 np.random.seed(42) data = {     "x": np.random.randint(0, 100, n),     "y": np.random.rand(n) } df_pandas = pd.DataFrame(data) df_fireducks = fpd.DataFrame(data) start_pd = time.time() sorted_pd = df_pandas.sort_values("x") time_pd = time.time() - start_pd start_fd = time.time() sorted_fd = df_fireducks.sort_values("x") time_fd = time.time() - start_fd print("Pandas 排序時(shí)間:{:.4f} 秒".format(time_pd)) print("FireDucks 排序時(shí)間:{:.4f} 秒".format(time_fd))

結(jié)果:

Pandas 排序時(shí)間: 0.0009 秒 FireDucks 排序時(shí)間: 0.0004 秒

在更大的數(shù)據(jù)集和更復(fù)雜的操作中,性能差異會(huì)更加明顯。

性能測量注意事項(xiàng)

由于 FireDucks 使用惰性執(zhí)行模型,測量單個(gè)方法的性能需要特別注意。有三種方法可以準(zhǔn)確測量性能:

  1. 啟用基準(zhǔn)測試模式

    # 通過環(huán)境變量 FIREDUCKS_FLAGS="--benchmark-mode" # 或在代碼中 from fireducks.core import get_fireducks_options get_fireducks_options().set_benchmark_mode(True)
  2. 使用_evaluate()方法

    t0 = time.time() df = pd.read_csv("data.csv")._evaluate() t1 = time.time() df = df.sort_values("a")._evaluate() t2 = time.time()
基準(zhǔn)測試結(jié)果 1. 數(shù)據(jù)庫類操作基準(zhǔn)測試

FireDucks 團(tuán)隊(duì)評估了 db-benchmark[1] 的性能,該基準(zhǔn)測試包括在多種大小的數(shù)據(jù)集上執(zhí)行基本數(shù)據(jù)科學(xué)操作的場景。

截至 2024 年 9 月 10 日,F(xiàn)ireDucks 在大數(shù)據(jù)的分組(groupby)和連接(join)操作方面似乎是最快的數(shù)據(jù)框架庫。


測試環(huán)境:

  • FireDucks 版本:fireducks-1.0.4

  • CPU 型號(hào):Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz

  • CPU 核心數(shù):128

  • 內(nèi)存:256GB

2. TPC-H 基準(zhǔn)測試

TPC-H 是一個(gè)決策支持基準(zhǔn)測試,包含復(fù)雜的查詢和大量數(shù)據(jù)修改。


上圖比較了四個(gè)數(shù)據(jù)框架庫(Pandas、DuckDB、Polars 和 FireDucks)在 22 個(gè)不同查詢上的性能。垂直軸以對數(shù)刻度顯示與 Pandas 相比快多少倍,大于 1 表示比 Pandas 快。

測試環(huán)境:

  • 服務(wù)器規(guī)格(AWS EC2 m7i.8xlarge)

  • CPU:INTEL(R) XEON(R) GOLD 6526Y(32 核)

  • 內(nèi)存:512GB

  • 操作系統(tǒng):Ubuntu 24.04

3. TPCx-BB 基準(zhǔn)測試

TPCx-BB 包括與使用機(jī)器學(xué)習(xí)及其預(yù)處理的數(shù)據(jù)分析相關(guān)的查詢。


在 TPCx-BB 測試中,F(xiàn)ireDucks 比 Pandas 最高快 17 倍,平均快 6.7 倍。

測試環(huán)境:

  • CPU:Intel(R) Xeon(R) Gold 5317 CPU @ 3.00GHz x 2 插槽(共 48 個(gè)硬件線程)

  • 內(nèi)存:256GB

  • 測試版本:

    • pandas-2.1.4

    • fireducks-0.9.3

使用注意事項(xiàng)

由于惰性執(zhí)行模型,使用傳統(tǒng)的 try-catch 塊檢查 KeyError 可能不會(huì)按預(yù)期工作:

# 不推薦的方式 def project(df, cname):     try:         s = df[cname]  # 由于惰性執(zhí)行,這里不會(huì)立即執(zhí)行     except KeyError:         print(f"列 {cname} 在輸入數(shù)據(jù)框中不存在")     else:         return s

推薦的方式:

# 推薦方式 1:使用 _evaluate() 強(qiáng)制執(zhí)行 def project(df, cname):     try:         s = df[cname]._evaluate()     except KeyError:         print(f"列 {cname} 在輸入數(shù)據(jù)框中不存在")     else:         return s # 推薦方式 2:使用 in 操作符 def project(df, cname):     if cname notin df:  # 這會(huì)立即執(zhí)行         print(f"列 {cname} 在輸入數(shù)據(jù)框中不存在")     else:         s = df[cname]         return s
在線體驗(yàn) FireDucks

您可以通過 Google Colab 免費(fèi)體驗(yàn) FireDucks 的易用性和高性能:

  • pandas_nyc_demo.ipynb [2]

  • fireducks_pandas_nyc_demo.ipynb [3]

  • FireDucks_vs_Pandas_vs_Polars.ipynb [4]

總結(jié)

FireDucks 是一個(gè)強(qiáng)大的 Pandas 加速庫,通過編譯器優(yōu)化和多線程處理,顯著提高了數(shù)據(jù)處理速度,同時(shí)保持了與 Pandas 的完全兼容性。它特別適合處理大型數(shù)據(jù)集和復(fù)雜的數(shù)據(jù)操作,可以輕松集成到現(xiàn)有的 Pandas 代碼中,無需大量修改。

根據(jù)多項(xiàng)基準(zhǔn)測試,F(xiàn)ireDucks 在各種數(shù)據(jù)處理場景中都展現(xiàn)出了顯著的性能優(yōu)勢,尤其是在處理大型數(shù)據(jù)集和復(fù)雜查詢時(shí)。

資源鏈接

  • 官方網(wǎng)站: https://fireducks-dev.github.io [5]

  • GitHub 倉庫: https://github.com/fireducks-dev/fireducks [6]

  • 聯(lián)系方式: contact@fireducks.jp.nec.com [7]

  • Slack 社區(qū): 加入 FireDucks Slack [8]


參考資料

db-benchmark: https://github.com/duckdblabs/db-benchmark

pandas_nyc_demo.ipynb: https://colab.research.google.com/github/fireducks-dev/fireducks/blob/main/notebooks/nyc_demo/pandas_nyc_demo.ipynb

fireducks_pandas_nyc_demo.ipynb: https://colab.research.google.com/github/fireducks-dev/fireducks/blob/main/notebooks/nyc_demo/fireducks_pandas_nyc_demo.ipynb

FireDucks_vs_Pandas_vs_Polars.ipynb: https://colab.research.google.com/github/fireducks-dev/fireducks/blob/main/notebooks/FireDucks_vs_Pandas_vs_Polars.ipynb

[5]

https://fireducks-dev.github.io: https://fireducks-dev.github.io

[6]

https://github.com/fireducks-dev/fireducks: https://github.com/fireducks-dev/fireducks

[7]

contact@fireducks.jp.nec.com: mailto:contact@fireducks.jp.nec.com

[8]

加入 FireDucks Slack: https://join.slack.com/t/fireducks/shared_invite/zt-2j4lucmtj-IGR7AWlXO62Lu605pnBJ2w

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
巴基斯坦紅旗16,成功攔截一枚印度“大地”彈道導(dǎo)彈

巴基斯坦紅旗16,成功攔截一枚印度“大地”彈道導(dǎo)彈

三叔的裝備空間
2025-05-08 20:13:39
接班李隼沒戲?秦志戩被放棄,王勵(lì)勤遇困難,國乒總教練人選出爐

接班李隼沒戲?秦志戩被放棄,王勵(lì)勤遇困難,國乒總教練人選出爐

忠橙家族
2025-05-08 14:35:47
北京全市將迎中到大雨,明日冷風(fēng)配冷雨,及時(shí)添衣

北京全市將迎中到大雨,明日冷風(fēng)配冷雨,及時(shí)添衣

新京報(bào)
2025-05-08 14:34:11
再立新功!烏克蘭無人機(jī)部隊(duì)炸毀罕見的俄羅斯雷達(dá)

再立新功!烏克蘭無人機(jī)部隊(duì)炸毀罕見的俄羅斯雷達(dá)

軍迷戰(zhàn)情室
2025-05-06 22:55:00
冠軍效應(yīng)!趙心童的簽名球價(jià)格為120英鎊,奧沙利文的為99英鎊

冠軍效應(yīng)!趙心童的簽名球價(jià)格為120英鎊,奧沙利文的為99英鎊

直播吧
2025-05-08 20:45:07
拍賣圈女王陳良玲,駝背

拍賣圈女王陳良玲,駝背

江湖人稱艾掌門
2025-05-08 16:07:07
反轉(zhuǎn)太突然,巴鐵重要城市受襲,第三方武裝參戰(zhàn),印度不許掛國旗

反轉(zhuǎn)太突然,巴鐵重要城市受襲,第三方武裝參戰(zhàn),印度不許掛國旗

暖心的小屋
2025-05-08 05:16:04
紐約這晚成“照妖鏡”,沒了濾鏡和美顏,LIsa,吉娜個(gè)個(gè)丑出國際

紐約這晚成“照妖鏡”,沒了濾鏡和美顏,LIsa,吉娜個(gè)個(gè)丑出國際

逍遙史記
2025-05-08 11:08:58
浙江省委原書記車俊,有新身份

浙江省委原書記車俊,有新身份

上觀新聞
2025-05-08 21:27:04
李寧教科級(jí)翻臉!全紅嬋徹底破防了!陳芋汐也很尷尬

李寧教科級(jí)翻臉!全紅嬋徹底破防了!陳芋汐也很尷尬

西樓知趣雜談
2025-05-08 12:47:10
“勝利日”紅場閱兵明日舉行,專家前瞻四大看點(diǎn)

“勝利日”紅場閱兵明日舉行,專家前瞻四大看點(diǎn)

中國青年報(bào)
2025-05-08 15:57:36
美國總統(tǒng)特朗普:明天上午10點(diǎn)將召開重大新聞發(fā)布會(huì)

美國總統(tǒng)特朗普:明天上午10點(diǎn)將召開重大新聞發(fā)布會(huì)

界面新聞
2025-05-08 09:10:07
教育部大量撤銷的10個(gè)專業(yè),今年高考千萬別亂報(bào)!

教育部大量撤銷的10個(gè)專業(yè),今年高考千萬別亂報(bào)!

譚老師地理工作室
2025-05-08 15:00:02
佟大為老婆關(guān)悅生圖:滿臉油光,浮腫明顯,被指“饅化”

佟大為老婆關(guān)悅生圖:滿臉油光,浮腫明顯,被指“饅化”

東方不敗然多多
2025-05-06 01:39:24
外貿(mào)越來越難,馬來西亞開始限制中國轉(zhuǎn)口貿(mào)易,出海的路越來越窄

外貿(mào)越來越難,馬來西亞開始限制中國轉(zhuǎn)口貿(mào)易,出海的路越來越窄

現(xiàn)代春秋
2025-05-08 18:43:09
湖北女老板發(fā)現(xiàn)男員工酷似亡夫,直到見到員工父母,她愣在當(dāng)場

湖北女老板發(fā)現(xiàn)男員工酷似亡夫,直到見到員工父母,她愣在當(dāng)場

紅豆講堂
2025-05-06 10:34:03
5月8日,全國92、95號(hào)汽油大降超“1.2元/升”,下次5月19日調(diào)價(jià)

5月8日,全國92、95號(hào)汽油大降超“1.2元/升”,下次5月19日調(diào)價(jià)

錘不倒的拖油瓶
2025-05-08 05:34:32
浙江30歲獨(dú)自爬山男子已找到,遺體在水域發(fā)現(xiàn),事發(fā)地曾多人被困

浙江30歲獨(dú)自爬山男子已找到,遺體在水域發(fā)現(xiàn),事發(fā)地曾多人被困

墜入二次元的海洋
2025-05-08 00:29:36
這才是宋氏三姐妹真實(shí)的相貌,不是演員扮演的角色!

這才是宋氏三姐妹真實(shí)的相貌,不是演員扮演的角色!

歷史偉人錄
2025-05-08 10:08:01
中國為什么要參加俄羅斯舉辦的衛(wèi)國戰(zhàn)爭?

中國為什么要參加俄羅斯舉辦的衛(wèi)國戰(zhàn)爭?

V記錄號(hào)
2025-05-08 21:47:30
2025-05-09 00:12:49
機(jī)器學(xué)習(xí)與Python社區(qū) incentive-icons
機(jī)器學(xué)習(xí)與Python社區(qū)
機(jī)器學(xué)習(xí)算法與Python
2949文章數(shù) 11008關(guān)注度
往期回顧 全部

科技要聞

理想L煥新版來了,輔助駕駛芯片全系升級(jí)

頭條要聞

美財(cái)長:特朗普考慮豁免部分商品最高145%關(guān)稅

頭條要聞

美財(cái)長:特朗普考慮豁免部分商品最高145%關(guān)稅

體育要聞

面對一群天賦怪,阿森納只能接受失敗

娛樂要聞

劉畊宏老婆補(bǔ)刀 清場風(fēng)波口碑翻車!

財(cái)經(jīng)要聞

57政策解讀:力度空前的系統(tǒng)性穩(wěn)增長舉措

汽車要聞

昨天李想點(diǎn)評了AI 今天我讓AI點(diǎn)評了理想

態(tài)度原創(chuàng)

時(shí)尚
游戲
健康
公開課
軍事航空

學(xué)會(huì)這5個(gè)萬能公式,好看一整個(gè)夏天

《那個(gè)游戲 6》PV2單平臺(tái)播放量破億 / 有生之年能看到《星露谷 2》?

唇皰疹和口腔潰瘍是"同伙"嗎?

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

山東艦航母現(xiàn)身菲北部海域 國防部回應(yīng)

無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 渑池县| 沾益县| 牡丹江市| 罗平县| 浦县| 晋城| 涡阳县| 仲巴县| 高雄县| 濮阳市| 衡东县| 兴宁市| 龙海市| 连城县| 五莲县| 信宜市| 嘉禾县| 远安县| 新建县| 东城区| 达尔| 临夏县| 刚察县| 普兰店市| 望奎县| 遵化市| 玉龙| 喜德县| 将乐县| 汽车| 边坝县| 揭东县| 广宗县| 旬阳县| 鄂州市| 清河县| 光山县| 怀集县| 天气| 治县。| 朝阳市|