"""
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 的 API 是在撰寫函式庫時,用於開發創新硬體、建立特殊陣列類型,或新增 NumPy 未提供功能的起點。
陣列函式庫 | 功能與應用領域 | |
Dask | 用於分析的分布式陣列和進階平行性,可實現大規模效能。 | |
CuPy | 與 NumPy 相容的陣列函式庫,用於 Python 的 GPU 加速運算。 | |
JAX | NumPy 程式可組合轉換:微分、向量化、即時編譯至 GPU/TPU。 | |
Xarray | 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 構成強大機器學習函式庫的基礎,例如 scikit-learn 和 SciPy。隨著機器學習的成長,建構在 NumPy 上的函式庫清單也隨之增加。 TensorFlow 的深度學習功能具有廣泛的應用,其中包括語音和影像辨識、基於文字的應用、時間序列分析和影片偵測。 PyTorch 是另一個深度學習函式庫,在電腦視覺和自然語言處理的研究人員中很受歡迎。
NumPy 是蓬勃發展的 Python 視覺化領域 中的必要元件,其中包括 Matplotlib、Seaborn、Plotly、Altair、Bokeh、Holoviz、Vispy、Napari 和 PyVista 等。
NumPy 對大型陣列的加速處理讓研究人員能夠視覺化遠大於原生 Python 所能處理的資料集。