xtensor-stack/xtensor
C++ tensors with broadcasting and lazy computing
解決的問題
xtensor 是一個用於數值分析的 C++ 庫,採用多維陣列表示式。它將類似 NumPy 的功能引入 C++,讓開發者能在避免 Python 開銷的同時,對陣列執行複雜的數學運算,同時為來自 Python 生態系的使用者保留熟悉的 API。
工作原理
該庫使用可擴充的表示式系統實現 延遲廣播。操作(如加法或正弦函數)不會立即計算結果,而是回傳一個 xexpression 物件。實際值僅在存取結果或將其指派給 xarray 或 xtensor 等容器時才計算。
它提供兩種主要容器類型:
xarray:一種可在執行時重塑的動態容器,類似於 NumPy 陣列。xtensor:維度在編譯時確定的容器,允許將形狀和步長棧分配,從而提升效能。
適用對象
適用於需要多維陣列操作和廣播功能的 C++ 開發者,包括從事數值分析、資料科學或高效能運算的人員。
主要亮點
- NumPy 風格 API:遵循 C++ 標準函式庫的慣用法,同時模仿 NumPy 的陣列程式設計模型。
- 延遲計算:僅在存取時評估表示式,減少不必要的計算。
- 廣播:支援遵循 NumPy 規則的、不同形狀陣列之間的元素級運算。
- 互操作性:透過適配器可原地處理 NumPy、Julia 和 R 資料結構。
- SIMD 加速:與
xsimd集成,利用 SSE、AVX、AVX512 和 Neon 指令集提升效能。
相關
- 專案
- 專案
- 專案
- 專案