本章節(jié)我們將來了解 NumPy 數(shù)組的一些基本屬性。 NumPy 數(shù)組的維數(shù)稱為秩(rank),一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。 在 NumPy中,每一個線性的數(shù)組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數(shù)組相當于是兩個一維數(shù)組,其中第一個一維數(shù)組中每個元素又是一個一維數(shù)組。所以一維數(shù)組就是 NumPy 中的軸(axis),第一個軸相當于是底層數(shù)組,第二個軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。 很多時候可以聲明 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。 NumPy 的數(shù)組中比較重要 ndarray 對象屬性有:
ndarray.ndimndarray.ndim 用于返回數(shù)組的維數(shù),等于秩。 實例import numpy as np a = np.arange(24) print (a.ndim) # a 現(xiàn)只有一個維度 # 現(xiàn)在調(diào)整其大小 b = a.reshape(2,4,3) # b 現(xiàn)在擁有三個維度 print (b.ndim)輸出結(jié)果為: 1 3 ndarray.shapendarray.shape 表示數(shù)組的維度,返回一個元組,這個元組的長度就是維度的數(shù)目,即 ndim 屬性(秩)。比如,一個二維數(shù)組,其維度表示"行數(shù)"和"列數(shù)"。 ndarray.shape 也可以用于調(diào)整數(shù)組大小。 實例import numpy as np a = np.array([[1,2,3],[4,5,6]]) print (a.shape)輸出結(jié)果為: (2, 3) 調(diào)整數(shù)組大小。 實例import numpy as np a = np.array([[1,2,3],[4,5,6]]) a.shape = (3,2) print (a)輸出結(jié)果為: [[1 2] [3 4] [5 6]] NumPy 也提供了 reshape 函數(shù)來調(diào)整數(shù)組大小。 實例import numpy as np a = np.array([[1,2,3],[4,5,6]]) b = a.reshape(3,2) print (b)輸出結(jié)果為: [[1, 2] [3, 4] [5, 6]] ndarray.itemsizendarray.itemsize 以字節(jié)的形式返回數(shù)組中每一個元素的大小。 例如,一個元素類型為 float64 的數(shù)組 itemsiz 屬性值為 8(float64 占用 64 個 bits,每個字節(jié)長度為 8,所以 64/8,占用 8 個字節(jié)),又如,一個元素類型為 complex32 的數(shù)組 item 屬性為 4(32/8)。 實例import numpy as np # 數(shù)組的 dtype 為 int8(一個字節(jié)) x = np.array([1,2,3,4,5], dtype = np.int8) print (x.itemsize) # 數(shù)組的 dtype 現(xiàn)在為 float64(八個字節(jié)) y = np.array([1,2,3,4,5], dtype = np.float64) print (y.itemsize)輸出結(jié)果為: 1 8 ndarray.flagsndarray.flags 返回 ndarray 對象的內(nèi)存信息,包含以下屬性:
實例import numpy as np x = np.array([1,2,3,4,5]) print (x.flags)輸出結(jié)果為: C_CONTIGUOUS : True F_CONTIGUOUS : True OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False |
|