NumPy - 簡介
NumPy 是一個 Python 包。 它代表 “Numeric Python”。 它是一個由多維數組對象和用於處理數組的例程集合組成的庫。
Numeric,即 NumPy 的前身,是由 Jim Hugunin 開發的。 也開發了另一個包 Numarray ,它擁有一些額外的功能。 2005年,Travis Oliphant 通過將 Numarray 的功能集成到 Numeric 包中來創建 NumPy 包。 這個開源項目有很多貢獻者。
NumPy 操作
使用NumPy,開發人員可以執行以下操作:
- 數組的算數和邏輯運算。
- 傅立葉變換和用於圖形操作的例程。
與線性代數有關的操作。 NumPy 擁有線性代數和隨機數生成的內置函數。
- NumPy – MatLab 的替代之一
- NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用。 這種組合廣泛用於替代 MatLab,是一個流行的技術計算平台。 但是,Python 作為 MatLab 的替代方案,現在被視為一種更加現代和完整的編程語言。
- NumPy 是開源的,這是它的一個額外的優勢。
NumPy - Ndarray 對象
NumPy 中定義的最重要的對象是稱為 ndarray 的 N 維數組類型。 它描述相同類型的元素集合。 可以使用基於零的索引訪問集合中的項目。
ndarray中的每個元素在內存中使用相同大小的塊。 ndarray中的每個元素是數據類型對象的對象(稱為 dtype)。
從ndarray對象提取的任何元素(通過切片)由一個數組標量類型的 Python 對象表示。 下圖顯示了ndarray,數據類型對象(dtype)和數組標量類型之間的關系。
Ndarray
ndarray類的實例可以通過本教程后面描述的不同的數組創建例程來構造。 基本的ndarray是使用 NumPy 中的數組函數創建的,如下所示:
numpy.array
它從任何暴露數組接口的對象,或從返回數組的任何方法創建一個ndarray。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
上面的構造器接受以下參數:
看看下面的例子來更好地理解。
NumPy - 數據類型
數據類型對象 (dtype)
數據類型對象描述了對應於數組的固定內存塊的解釋,取決於以下方面:
- 數據類型(整數、浮點或者 Python 對象)
- 數據大小
- 字節序(小端或大端)
- 在結構化類型的情況下,字段的名稱,每個字段的數據類型,和每個字段占用的內存塊部分。
- 如果數據類型是子序列,它的形狀和數據類型。
字節順序取決於數據類型的前綴<或>。 <意味着編碼是小端(最小有效字節存儲在最小地址中)。 >意味着編碼是大端(最大有效字節存儲在最小地址中)。
dtype可由一下語法構造:
numpy.dtype(object, align, copy)
參數為:
- Object:被轉換為數據類型的對象。
- Align:如果為true,則向字段添加間隔,使其類似 C 的結構體。
- Copy ? 生成dtype對象的新副本,如果為flase,結果是內建數據類型對象的引用。
每個內建類型都有一個唯一定義它的字符代碼:
- 'b':布爾值
- 'i':符號整數
- 'u':無符號整數
- 'f':浮點
- 'c':復數浮點
- 'm':時間間隔
- 'M':日期時間
- 'O':Python 對象
- 'S', 'a':字節串
- 'U':Unicode
- 'V':原始數據(void)
NumPy - 數組屬性
這一章中,我們會討論 NumPy 的多種數組屬性。
ndarray.shape
這一數組屬性返回一個包含數組維度的元組,它也可以用於調整數組大小。
ndarray.ndim
這一數組屬性返回數組的維數。
添加/刪除元素