Numpy 數組
NumPy數組是一個多維數組對象,稱爲ndarray。其由兩部分組成:
1.) 實際的數據
2.)描述這些數據的元數據
大部分操作僅針對於元數據,而不改變底層實際的數據。
注意: 數組下標從0開始。同一個NumPy 數組中所有元素的類型必須是相同的。
NumPy數組的秩與軸
NumPy數組的維數稱爲秩(rank),一維數組的秩爲1,二維數組的秩爲2,以此類推。在NumPy中,每一個線性的數組稱爲是一個軸(axes),秩其實是描述軸的數量。比如說,二維數組相當於是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。所以一維數組就是NumPy中的軸(axes),第一個軸相當於是底層數組,第二個軸是底層數組裏的數組。而軸的數量——秩,就是數組的維數。
NumPy 數組 ndarray對象屬性:
1.) ndarray.ndim:數組的維數(即數組軸的個數),等於秩。最常見的爲二維數組(矩陣)。
2.) ndarray.shape:數組的維度。爲一個表示數組在每個維度上大小的整數元組。例如二維數組中,表示數組的“行數”和“列數”。ndarray.shape返回一個元組,這個元組的長度就是維度的數目,即ndim屬性。
3.) ndarray.size:數組元素的總個數,等於shape屬性中元組元素的乘積。
4.) ndarray.dtype:表示數組中元素類型的對象,可使用標準的Python類型創建或指定dtype。另外也可使用前一篇文章中介紹的NumPy提供的數據類型。
5.) ndarray.dtype:表示數組中元素類型的對象,可使用標準的Pythonndarray.itemsize:數組中每個元素的字節大小。例如,一個元素類型爲float64的數組itemsiz屬性值爲8(float64佔用64個bits,每個字節長度爲8,所以64/8,佔用8個字節),又如,一個元素類型爲complex32的數組item屬性爲4(32/8)。型創建或指定dtype。另外也可使用前一篇文章中介紹的NumPy提供的數據類型。
6.) ndarray.data:包含實際數組元素的緩衝區,由於一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。
7.) ndarray.arange : arange函數類似於python的range函數,通過指定開始值、終值和步長來創建一維數組,注意數組不包括終值.
示例:
np.arange(1,2,0.1) # 1 -- 起始值,2 -- 終止值, 0.1 -- 步長值(每個元素的增長點)
輸出: array([ 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9])
8.) ndarray.linspace : 通過指定開始值、終值和元素個數來創建一維數組,可以通過endpoint關鍵字指定是否包括終值,缺省設置是包括終值.
示例:
b = np.linspace(0, 1, 12) # 0 -- 開始值 1 -- 終止值 12 -- 元素個數
print b
輸出: array([ 0. 0.09090909 0.18181818 0.27272727 0.36363636 0.45454545
0.54545455 0.63636364 0.72727273 0.81818182 0.90909091 1. ])
9.) ndarray.logspace : 和linspace類似,不過它創建等比數列,下面的例子產生1(10^0)到100(10^2)、有20個元素的等比數列.