np.vectorize() 總是在 Pandas 中建立新列的最快方法嗎?

DDD
發布: 2024-10-26 12:42:02
原創
638 人瀏覽過

 Is np.vectorize() Always the Fastest Way to Create New Columns in Pandas?

建立新欄位時,np.vectorize() 總是比 Pandas apply() 更快嗎?

是的,np.vectorize() 是對於此任務,通常比 Pandas apply() 更快。我們的測試顯示 np.vectorize() 可以明顯更快,尤其是對於較大的資料集。

為什麼 np.vectorize() 比 apply() 快?

Pandas apply() 依賴 Python 層級循環來迭代資料幀中的行或列。與 np.vectorize() 相比,這會帶來顯著的開銷,後者使用優化的基於 C 的程式碼進行向量化操作。

np.vectorize() 將您的輸入函數轉換為通用函數 (ufunc) 並對其進行評估使用廣播的輸入數組的連續元組。這避免了創建和傳遞 Pandas 物件的開銷,從而提高了效能。

np.vectorize() 應該優先於 apply() 嗎?

用於建立新列作為現有列的函數,np.vectorize() 由於其卓越的性能通常是更好的選擇。但是,需要注意的是,與 apply() 相比,np.vectorize() 的靈活性有限,尤其是在存取其他欄位或執行複雜操作時。

其他更快的選項

對於真正最佳化的向量化計算,像 np.where() 或逐元素運算這樣的 NumPy 運算非常有效。如果效能至關重要,請考慮使用這些函式庫或探索像 numba 這樣的函式庫,它們可以對自訂函數進行高效的 JIT 編譯。

以上是np.vectorize() 總是在 Pandas 中建立新列的最快方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板