NumPy 是一個 Python 包。 它代表 「Numeric Python」。 它是一個由多維陣列物件和用於處理陣列的例程集合組成的庫。
Numeric,即 NumPy 的前身,是由 Jim Hugunin 開發的。 也開發了另一個包 Numarray ,它擁有一些額外的功能。 2005年,Travis Oliphant 通過將 Numarray 的功能整合到 Numeric 包中來建立 NumPy 包。 這個開源專案有很多貢獻者。
NumPy 操作
使用NumPy,開發人員可以執行以下操作:
NumPy – MatLab 的替代之一
NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪相簿)一起使用。 這種組合廣泛用於替代 MatLab,是一個流行的技術計算平台。 但是,Python 作為 MatLab 的替代方案,現在被視為一種更加現代和完整的程式設計語言。
NumPy 是開源的,這是它的一個額外的優勢。
教學目錄
- NumPy環境安裝組態 - 標準的 Python 發行版不會與 NumPy 模組捆綁在一起。 一個輕量級的替代方法是使用流行的 Python 包安裝程式 pip 來安裝 NumPy。
- NumPy Ndarray物件 - NumPy 中定義的最重要的物件是稱為 ndarray 的 N 維陣列型別。 它描述相同型別的元素集合。可以使用基於零的索引存取集合中的專案。
- NumPy資料型別 - NumPy 比 Python 支援更多種類的數值型別。
- NumPy陣列屬性 - NumPy陣列屬性返回一個包含陣列維度的元組,它也可以用於調整陣列大小。
- NumPy陣列建立例程 - 新的ndarray物件可以通過任何下列陣列建立例程或使用低階ndarray建構函式構造。
- NumPy來自現有資料的陣列 - 這一章中會討論如何從現有資料建立陣列。
- NumPy來自數值範圍的陣列 - 這一章中學到如何從數值範圍建立陣列。
- NumPy切片和索引 - ndarray物件中的元素遵循基於零的索引。 有三種可用的索引方法型別: 欄位存取,基本切片和高階索引。
- NumPy高階索引 - 如果一個ndarray是非元組序列,資料型別為整數或布林值的ndarray,或者至少一個元素為序列物件的元組,就能夠用它來索引ndarray。
- NumPy廣播 - 術語廣播是指 NumPy 在算術運算期間處理不同形狀的陣列的能力。 對陣列的算術運算通常在相應的元素上進行。
- NumPy在陣列上的疊代 - NumPy 包包含一個疊代器物件numpy.nditer。 它是一個有效的多維疊代器物件,可以用於在陣列上進行疊代。 陣列的每個元素可使用 Python 的標準Iterator介面來存取。
- NumPy陣列操作 - NumPy包中有幾個例程用於處理ndarray物件中的元素。
- NumPy位元運算 - NumPy 包中可用的位元運算函式。
- NumPy字串函式 - 對
dtype
為numpy.string_
或numpy.unicode_
的陣列執行向量化字串操作。 它們基於 Python 內建庫中的標準字串函式。 - NumPy數學算數函式 - NumPy 包含大量的各種數學運算功能。 NumPy 提供標準的三角函式,算術運算的函式,複數處理常式等。
- NumPy統計函式 - NumPy 有很多有用的統計函式,用於從陣列中給定的元素中查詢最小,最大,百分標準差和方差等。
- NumPy排序、搜尋和計數函式 - NumPy中提供了各種排序相關功能。 這些排序函式實現不同的排序演算法,每個排序演算法的特徵在於執行速度,最壞情況效能,所需的工作空間和演算法的穩定性。
- NumPy位元組交換 - 儲存在計算機記憶體中的資料取決於 CPU 使用的架構。 它可以是小端(最小有效位儲存在最小地址中)或大端(最小有效位元組儲存在最大地址中)。
- NumPy副本和檢視 - 在執行函式時,其中一些返回輸入陣列的副本,而另一些返回檢視。 當內容物理儲存在另一個位置時,稱為副本。 另一方面,如果提供了相同記憶體內容的不同檢視,我們將其稱為檢視。
- NumPy矩陣庫 - NumPy 包包含一個 Matrix庫numpy.matlib。此模組的函式返回矩陣而不是返回ndarray物件。
- NumPy線性代數 - NumPy 包包含numpy.linalg模組,提供線性代數所需的所有功能。
- NumPy使用 Matplotlib 繪製直方圖 - NumPy 有一個numpy.histogram()函式,它是資料的頻率分布的圖形表示。 水平尺寸相等的矩形對應於類間隔,稱為bin,變數height對應於頻率。
- NumPy IO檔案操作 - ndarray物件可以儲存到磁碟檔案並從磁碟檔案載入。
註:本教學內容由 http://www.flygon.net 翻譯提供。