Pandas apply 與NumPy vectorize 在建立列時的效能注意事項
雖然Pandas apply 被廣泛使用,但在建立列時其效能落後於NumPy vectorize來自現有欄位的新欄位。這種差異歸因於這樣一個事實:apply 函數是 Python 層級的循環,會產生大量開銷。相較之下,向量化將輸入函數轉換為通用函數,顯著提高了效率。
效能基準
比較Python等級的循環並應用raw=True,我們觀察:
真正的向量化
但是,apply 和vectorize 都被真正的向量化操作(例如np.where)所掩蓋,這些操作在NumPy數組上按元素執行計算。這種方法速度明顯更快,無需循環。
進一步的效能注意事項
對於關鍵瓶頸,請考慮 numba,這是一個將 Python 函數編譯為高度最佳化的 C 語言的工具程式碼。使用 numba,可以進一步加速運算。
結論
當從現有欄位建立新欄位時,NumPy 向量化由於其原生向量化而提供了比 Pandas apply 更優越的效能能力。為了獲得最佳效率,應在適用的情況下採用真正的向量化。
以上是在 Pandas DataFrame 中建立新列哪種方法比較快:Pandas Apply 或 NumPy Vectorize?的詳細內容。更多資訊請關注PHP中文網其他相關文章!