如果您一直在關注 Python 的最新發展,您可能聽說過 Polars,一個用於處理資料的新程式庫。雖然 pandas 長期以來一直是首選庫,但 Polars 正在掀起波瀾,尤其是在處理大型資料集方面。那麼,Polars 有什麼大不了的呢?它和熊貓有什麼不同?讓我們來分解一下。
Polars 是一個使用 Rust(一種快速的現代程式語言)建立的免費開源函式庫。它旨在幫助 Python 開發人員以更快、更有效率的方式處理資料。將其視為 pandas 的替代方案,當您處理 pandas 可能難以處理的非常大的資料集時,它會表現出色。
Pandas 已經存在很多年了,許多人仍然喜歡使用它。但隨著數據變得越來越大、越來越複雜,pandas 開始表現出一些弱點。 Polars 的創建者 Ritchie Vink 注意到了這些問題,並決定創造一些更快、更有效率的東西。甚至Wes McKinney,pandas 的創建者,也在一篇題為“我討厭pandas 的10 件事” 的博客文章中承認,pandas 可以進行一些改進,特別是對於大型資料集。
這就是 Polars 的用武之地,它的設計速度快且記憶體效率高,這是 pandas 在處理大數據時遇到的兩個問題。
Polars 速度非常快。事實上,一些基準測試表明,在執行過濾或分組資料等常見操作時,Polars 的速度比 pandas 快 5-10 倍。當您處理大型資料集時,這種速度差異尤其明顯。
Polars 在記憶方面更有效率。它使用的記憶體比 pandas 少 5 到 10 倍,這意味著您可以處理更大的資料集而不會遇到記憶體問題。
Polars 使用稱為延遲執行的東西,這意味著它不會在您編寫操作時立即運行每個操作。相反,它會等到您編寫了一系列操作,然後立即運行它們。這有助於它優化並更快地運行。另一方面,Pandas 會立即運行每個操作,這對於大型任務來說可能會更慢。
Polars 可以同時使用多個 CPU 核心來處理數據,這使得處理大數據集的速度更快。 Pandas 大多是單線程的,這意味著它一次只能使用一個 CPU 核心,這會減慢速度,尤其是在處理大型資料集時。
Polars 速度快有幾個原因:
Rust 和 Apache Arrow 的這種組合使 Polars 在速度和記憶體使用方面比 pandas 更具優勢。
雖然 Polars 非常適合大數據,但 pandas 仍然佔有一席之地。 Pandas 非常適合中小型資料集,並且已經存在很長時間了,它擁有大量的功能和龐大的社區。因此,如果您不使用龐大的資料集,pandas 可能仍然是您的最佳選擇。
但是,隨著資料集變大,pandas 往往會使用更多記憶體並且速度變慢,這使得 Polars 在這些情況下成為更好的選擇。
如果有以下情況,您應該考慮使用 Polars:
北極熊和熊貓都有各自的優點。如果您正在處理中小型資料集,pandas 仍然是一個很棒的工具。但如果您正在處理大型資料集並且需要更快、更有效率的記憶體效率,Polars 絕對值得嘗試。由於 Rust 和 Apache Arrow,其效能已提升,使其成為資料密集型任務的絕佳選擇。
隨著 Python 的不斷發展,Polars 可能會成為處理大數據的新的首選工具。
編碼愉快? ?
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3