
- NumPy 教程
- NumPy - 首頁
- NumPy 簡介
- NumPy - 環境配置
- NumPy 陣列
- NumPy - Ndarray 物件
- NumPy - 資料型別
- NumPy 陣列的建立和操作
- NumPy - 陣列建立函式
- NumPy - 陣列操作
- NumPy - 從現有資料建立陣列
- NumPy - 從數值範圍建立陣列
- NumPy - 陣列迭代
- NumPy - 陣列重塑
- NumPy - 陣列連線
- NumPy - 陣列堆疊
- NumPy - 陣列分割
- NumPy - 陣列扁平化
- NumPy - 陣列轉置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高階索引
- NumPy 陣列屬性和運算
- NumPy - 陣列屬性
- NumPy - 陣列形狀
- NumPy - 陣列大小
- NumPy - 陣列步長
- NumPy - 陣列元素大小
- NumPy - 廣播
- NumPy - 算術運算
- NumPy - 陣列加法
- NumPy - 陣列減法
- NumPy - 陣列乘法
- NumPy - 陣列除法
- NumPy 高階陣列運算
- NumPy - 交換陣列軸
- NumPy - 位元組交換
- NumPy - 副本和檢視
- NumPy - 元素級陣列比較
- NumPy - 陣列過濾
- NumPy - 陣列拼接
- NumPy - 排序、搜尋和計數函式
- NumPy - 陣列搜尋
- NumPy - 陣列並集
- NumPy - 查詢唯一行
- NumPy - 建立日期時間陣列
- NumPy - 二元運算子
- NumPy - 字串函式
- NumPy - 數學函式
- NumPy - 統計函式
- NumPy - 矩陣庫
- NumPy - 線性代數
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 繪製直方圖
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高階操作
- NumPy - 陣列排序
- NumPy - 沿軸排序
- NumPy - 使用花式索引排序
- NumPy - 結構化陣列
- NumPy - 建立結構化陣列
- NumPy - 操作結構化陣列
- NumPy - 欄位訪問
- NumPy - 記錄陣列
- Numpy - 載入陣列
- Numpy - 儲存陣列
- NumPy - 向陣列追加值
- NumPy - 交換陣列列
- NumPy - 向陣列插入軸
- NumPy 處理缺失資料
- NumPy - 處理缺失資料
- NumPy - 識別缺失值
- NumPy - 刪除缺失資料
- NumPy - 填充缺失資料
- NumPy 效能最佳化
- NumPy - 使用陣列進行效能最佳化
- NumPy - 使用陣列進行向量化
- NumPy - 陣列的記憶體佈局
- Numpy 線性代數
- NumPy - 線性代數
- NumPy - 矩陣庫
- NumPy - 矩陣加法
- NumPy - 矩陣減法
- NumPy - 矩陣乘法
- NumPy - 元素級矩陣運算
- NumPy - 點積
- NumPy - 矩陣求逆
- NumPy - 行列式計算
- NumPy - 特徵值
- NumPy - 特徵向量
- NumPy - 奇異值分解
- NumPy - 求解線性方程組
- NumPy - 矩陣範數
- NumPy 元素級矩陣運算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位數
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合運算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 並集
- NumPy - 差集
- NumPy 有用資源
- NumPy 編譯器
- NumPy - 快速指南
- NumPy - 有用資源
- NumPy - 討論
NumPy 簡介
NumPy 簡介
NumPy 是一個 Python 包。它代表“Numerical Python”。它是一個包含多維陣列物件和用於陣列處理的例程集合的庫。
Numeric,NumPy 的祖先,由 Jim Hugunin 開發。另一個包 Numarray 也得到了開發,它具有一些額外的功能。2005 年,Travis Oliphant 透過將 Numarray 的特性整合到 Numeric 包中建立了 NumPy 包。許多人參與了這個開源專案。
使用 NumPy 進行的操作
使用 NumPy,開發人員可以執行以下操作:
陣列上的數學和邏輯運算。
傅立葉變換和用於形狀操作的例程。
與線性代數相關的運算。NumPy 內建了線性代數和隨機數生成函式。
NumPy – MATLAB 的替代品
NumPy 通常與 SciPy(科學 Python)和 Matplotlib(繪相簿)等包結合使用。這種組合被廣泛用作 MATLAB 的替代品,MATLAB 是一個流行的技術計算平臺。然而,Python 的 MATLAB 替代方案現在被視為一種更現代、更完整的程式語言。
NumPy 的一個重要優勢在於它是開源的,任何人都可以免費使用它。
為什麼 NumPy 比列表更快?
NumPy 陣列比 Python 列表快得多,原因如下:
方面 | NumPy | 列表 |
---|---|---|
記憶體儲存 | NumPy 使用連續的記憶體塊,這提高了快取效率和訪問速度。 | Python 列表包含指向物件的指標,導致更多的記憶體碎片和更慢的訪問速度。 |
資料型別 | NumPy 支援同類資料型別(所有元素都是相同型別),從而提高了記憶體使用效率。 | Python 列表可以包含異類資料型別(元素可以是不同型別),導致更高的記憶體開銷。 |
運算 | NumPy 使用向量運算,利用 SIMD(單指令多資料)進行並行處理。 | Python 列表依賴於基於迴圈的運算,由於 Python 解釋性質的開銷,這些運算速度較慢。 |
效率 | NumPy是用C語言編寫的,並且針對性能進行了最佳化,減少了數值運算的執行時間。 | Python 列表作為 Python 位元組碼執行,通常比編譯後的 C 程式碼慢。 |
記憶體使用 | 由於固定資料型別和連續儲存,NumPy 需要更少的記憶體。 | Python 列表使用更多的記憶體,因為每個元素都是一個單獨的 Python 物件,並有額外的開銷。 |
廣播 | NumPy 支援廣播,允許對不同形狀的陣列進行運算,而無需建立額外的副本。 | Python 列表不支援廣播,使得逐元素運算效率較低。 |
效能 | 由於連續記憶體儲存,更好的快取利用率,從而導致更快的訪問和處理速度。 | 由於記憶體分配分散,快取利用率差,導致訪問速度變慢。 |
功能 | NumPy 提供了一套豐富的數學函式和工具,這些函式和工具針對陣列運算進行了最佳化。 | Python 列表僅限於基本操作,缺乏高階數學功能。 |
NumPy是用什麼語言編寫的?
NumPy 主要用以下語言編寫:
C:NumPy 的核心功能,包括陣列物件和基本運算的實現,是用 C 語言編寫的。這提供了 NumPy 聞名的卓越效能和效率。
Python:NumPy 的使用者介面和高階功能是用 Python 編寫的。這使得它易於使用並與其他 Python 庫整合。
Fortran:NumPy 中的一些數值例程,特別是與線性代數相關的例程(如 LAPACK 和 BLAS),是用 Fortran 編寫的。Fortran 以其在數值計算方面的效率而聞名,這增強了 NumPy 在特定型別操作中的效能。
廣告