=============================================

用 Python 已經十幾年了。雖然也覺得應該學其他語言,但在研究、概念驗證(PoC)、簡單解析或簡單模擬上一直使用 Python。
Pandas 廣泛用於試算表處理,但看到社群上有人說最近比較少用 Pandas,我就想調查一下是否常用的函式庫在改變。
目前並沒有遇到太大問題,但若不早做因應,之後可能會麻煩,所以我一邊使用大型語言模型(LLM)一邊查資料。
現在只要問 LLM 用法很快就能拿到,所以新函式庫的上手成本也變低了。
這篇只是整理而已,沒有做速度比較。

結論是,除非資料量增加,過去使用的

  • NumPy
  • Pandas
  • Matplotlib
  • scikit-learn
  • PyTorch

等仍然足夠,不會太困擾。
不過視資料規模與用途,值得考慮新興函式庫(像 Polars 或 DuckDB)。
多數人會在數百萬到數千萬列的規模開始考慮 Polars 或 DuckDB 等方案。

以上就是結論。

試算表函式庫的變化(Pandas 週邊)

近年除了 Pandas,還出現了 Polars、DuckDB 等高速資料處理函式庫。
因為與其他視覺化函式庫有相依關係,在 Python 的資料分析領域 Pandas 長期被視為標準的試算表函式庫。
在小到中等規模的資料分析中,Pandas 仍然是標準工具。
而且很多視覺化與機器學習函式庫都以 Pandas 的 DataFrame 為前提,在生態系上也仍然很強大。
另一方面,對於大規模資料或需要高速處理的情況,Polars 和 DuckDB 的使用也在增加。多數人在數百萬到數千萬列時會開始評估這些選項。
也有不少基準測試文章指出 Polars 的效能較快。

  • Polars
    • 用 Rust 實作
    • 高速
    • API 與 Pandas 相近
  • DuckDB
    • 以 SQL 進行分析
    • 可直接分析 CSV/Parquet
    • 適合本機分析

矩陣計算函式庫的變化(NumPy 週邊)

Python 的數值計算基礎仍然是 NumPy。
許多科學與工程計算函式庫都是以 NumPy 為前提。
在多數研究與資料分析場景下,僅靠 NumPy 就已足夠。
不過在追求加速或進行 GPU 計算時,越來越多人會搭配 Numba 或 JAX 等工具。
也常看到類似「讓 NumPy 的運算快多少倍」的比較文章。

  • JAX
    • 自動微分
    • 支援 GPU/TPU
  • Numba
    • 即時(JIT)編譯
  • CuPy
    • GPU 上的 NumPy 相容實作

學術與機器學習函式庫的變化(scikit‑learn、SciPy、PyTorch 週邊)

傳統機器學習領域中,scikit‑learn 長期作為標準函式庫被廣泛使用。
近年因深度學習普及,像 PyTorch 這類深度學習框架的使用也增加。
對於傳統機器學習演算法,scikit‑learn 依然好用;而在深度學習或研究用途上,PyTorch 被廣泛採用。

視覺化函式庫的變化(Matplotlib 週邊)

Matplotlib 長期是 Python 的視覺化函式庫。
在基本視覺化需求上,Matplotlib 與 Seaborn 大多數情況已足夠。
若要做互動式視覺化或儀表板(dashboard),Plotly 等工具的使用也在增加。

  • Seaborn
    • 基於 Matplotlib 的統計視覺化函式庫
  • Plotly
    • 支援互動式視覺化
  • Altair
    • 宣告式視覺化(API 的寫法不同)

結語

我不常處理大量資料,若遇到效能瓶頸會直接用 C++,因此過去沒太認真考慮;但 Python 在這方面也有越來越多的因應方案。
關於 Pandas 周邊,其實若多接觸 Arrow 生態系可能能寫得更詳盡,但這次只稍微觸及。
另外,機器學習方面也還有像 LightGBM 之類依方法不同的函式庫沒特別提到。
依用途與資料規模選擇工具會比較好,但在小到中等規模的分析上,傳統的 Python 資料分析棧仍然足以應付。
也歡迎推薦你覺得好的函式庫。

附錄

  • 個人取得專利並撰寫相關文章

原文出處:https://qiita.com/YASUHARA-Wataru/items/5a8a16a2b7e91c3536a8


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬10   ❤️2
364
🥈
我愛JS
📝2   💬9   ❤️2
93
🥉
💬1  
4
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登