NumPy Ndarray 對象
NumPy 最重要的一個特點是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。
ndarray 對象是用於存放同類型元素的多維數組。
ndarray 中的每個元素在內存中都有相同存儲大小的區域。
ndarray 內部由以下內容組成:
-
一個指向數據(記憶體或記憶體映射檔中的一塊數據)的指針。
-
數據類型或 dtype,描述在數組中的固定大小值的格子。
-
一個表示數組形狀(shape)的元組,表示各維度大小的元組。
-
一個跨度元組(stride),其中的整數指的是為了前進到當前維度下一個元素需要"跨過"的位元組數。
ndarray 的內部結構:
跨度可以是負數,這樣會使數組在內存中後向移動,切片中 obj[::-1] 或 obj[:,::-1] 就是如此。
創建一個 ndarray 只需調用 NumPy 的 array 函數即可:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
參數說明:
名稱 | 描述 |
---|---|
object | 數組或嵌套的數列 |
dtype | 數組元素的數據類型,可選 |
copy | 對象是否需要複製,可選 |
order | 創建數組的樣式,C為行方向,F為列方向,A為任意方向(默認) |
subok | 默認返回一個與基類類型一致的數組 |
ndmin | 指定生成數組的最小維度 |
實例
接下來可以通過以下實例幫助我們更好的理解。
實例 1
import numpy as np
a = np.array([1,2,3])
print (a)
輸出結果如下:
[1, 2, 3]
實例 2
# 多於一個維度
import numpy as np
a = np.array([[1, 2], [3, 4]])
print (a)
輸出結果如下:
[[1, 2] [3, 4]]
實例 3
# 最小維度
import numpy as np
a = np.array([1, 2, 3,4,5], ndmin = 2)
print (a)
輸出如下:
[[1, 2, 3, 4, 5]]
實例 4
# dtype 參數
import numpy as np
a = np.array([1, 2, 3], dtype = complex)
print (a)
輸出結果如下:
[ 1.+0.j, 2.+0.j, 3.+0.j]
ndarray 對象由電腦記憶體的連續一維部分組成,並結合索引模式,將每個元素映射到記憶體塊中的一個位置。記憶體塊以行順序(C樣式)或列順序(FORTRAN或MatLab風格,即前述的F樣式)來保存元素。