"""
To try the examples in the browser:
1. Type code in the input cell and press
Shift + Enter to execute
2. Or copy paste the code, and click on
the "Run" button in the toolbar
"""
# The standard way to import NumPy:
import numpy as np
# Create a 2-D array, set every second element in
# some rows and find max per row:
x = np.arange(15, dtype=np.int64).reshape(3, 5)
x[1:, ::2] = -99
x
# array([[ 0, 1, 2, 3, 4],
# [-99, 6, -99, 8, -99],
# [-99, 11, -99, 13, -99]])
x.max(axis=1)
# array([ 4, 8, 13])
# Generate normally distributed random numbers:
rng = np.random.default_rng()
samples = rng.normal(size=2500)
samples
幾乎每位使用 Python 的科學家都仰賴 NumPy 的強大功能。
NumPy 將 C 和 Fortran 等語言的運算能力帶入 Python,這是一種更易於學習和使用的語言。 這種強大功能帶來了簡潔性:NumPy 中的解決方案通常清晰而優雅。
當函式庫被編寫以利用創新硬體、建立專門的陣列類型或新增超出 NumPy 提供的功能時,NumPy 的 API 是起點。
陣列函式庫 | 功能與應用領域 | |
![]() | Dask | 用於分析的分散式陣列和進階平行處理,實現大規模效能。 |
![]() | CuPy | 與 NumPy 相容的陣列函式庫,用於 Python 的 GPU 加速運算。 |
![]() | JAX | NumPy 程式的可組合轉換:微分、向量化、即時編譯到 GPU/TPU。 |
![]() | Xarray | 標記、索引的多維陣列,用於進階分析和視覺化。 |
![]() | Sparse | 與 NumPy 相容的稀疏陣列函式庫,可與 Dask 和 SciPy 的稀疏線性代數整合。 |
PyTorch | 深度學習框架,加速從研究原型到生產部署的路徑。 | |
TensorFlow | 用於機器學習的端對端平台,可輕鬆建置和部署 ML 驅動的應用程式。 | |
![]() | Arrow | 跨語言開發平台,用於柱狀記憶體內資料和分析。 |
![]() | xtensor | 具有廣播和延遲運算的多維陣列,用於數值分析。 |
Awkward Array | 使用類似 NumPy 的慣用語操作類似 JSON 的資料。 | |
![]() | uarray | Python 後端系統,將 API 與實作分離; unumpy 提供 NumPy API。 |
![]() | tensorly | 張量學習、代數和後端,可無縫使用 NumPy、PyTorch、TensorFlow 或 CuPy。 |
NumPy 位於豐富的資料科學函式庫生態系統的核心。 典型的探索性資料科學工作流程可能如下所示
NumPy 構成了強大的機器學習函式庫(如 scikit-learn 和 SciPy)的基礎。 隨著機器學習的發展,建立在 NumPy 之上的函式庫列表也在不斷增加。 TensorFlow 的深度學習功能具有廣泛的應用——其中包括語音和影像辨識、基於文字的應用程式、時間序列分析和影片偵測。 PyTorch 是另一個深度學習函式庫,在電腦視覺和自然語言處理領域的研究人員中很受歡迎。
NumPy 是蓬勃發展的 Python 視覺化領域中的重要組件,其中包括 Matplotlib、Seaborn、Plotly、Altair、Bokeh、Holoviz、Vispy、Napari 和 PyVista 等等。
NumPy 加速處理大型陣列的能力使研究人員能夠視覺化遠大於原生 Python 可以處理的資料集。