Pandas Apply 與NumPy Vectorize 在列建立中的效能
簡介
簡介廣泛的基準測試顯示 np.vectorize( )始終明顯優於 df.apply()。例如,在具有 100 萬行的資料集中,np.vectorize() 在 2016 年 MacBook Pro 上速度提高了 25 倍。隨著資料集大小的增加,這種差異變得更加明顯。
底層機制df.apply() 透過一系列 Python 層級的循環進行操作,這引入了重要的開銷。每次迭代都涉及建立一個新的 Pandas Series 物件、呼叫函數並將結果附加到新列。相較之下,np.vectorize() 利用 NumPy 的廣播規則來評估陣列上的函數。這種方法繞過了 Python 循環的開銷,並利用了優化的 C 程式碼,從而加快了執行速度。
真正的向量化對於真正的向量化計算,df.apply 都不是() 和 np.vectorize() 都不是最佳的。相反,本機 NumPy 操作提供了卓越的性能。例如,向量化的 diverge() 比 df.apply() 或 np.vectorize() 顯示出顯著的效能優勢。
使用Numba 進行JIT 編譯For為了獲得更高的效率,可以使用Numba 的@njit 裝飾器將divide() 函數編譯為高效的C 級代碼。這種方法進一步減少了執行時間,以微秒而不是秒為單位產生結果。
結論雖然df.apply() 提供了一個方便的介面來將函數應用於資料幀,對於大型資料集,其效能限制變得顯而易見。對於效能關鍵型應用程序,NumPy 的 np.vectorize() 及其 Numba 中 JIT 編譯的對應項為建立新列提供了卓越的速度。另外值得注意的是,使用本機 NumPy 函數的真正向量化操作是大規模資料操作的最有效選擇。以上是Pandas Apply 與 NumPy Vectorize:哪個建立新欄位更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具