NumPy的主要操作對象是同類型的多維數組,數組中的所有元素類型都是相同的,數組對象名是ndarray,別名是array。
一、創建數組
可以有多種方式創建NumPy數組:(1)使用NumPy的array函數從Python列表中創建數組,數組類型由列表中的數據類型確定;(2)使用NumPy的zeros函數創建數組元素全部為0的數組,默認情況下數組元素的類型為float64;(3)使用NumPy的ones函數創建數組元素全部為1的數組,默認情況下數組元素的類型為float64;(4)使用NumPy的empty函數創建數組元素為隨機內容的數組,隨機內容取決於存儲器的狀態;(5)使用NumPy的arange函數創建等間隔的數字數組。
1、使用NumPy的array函數創建數組
使用NumPy的array函數可以創建1維、2維、……、n維數組,array函數要求傳入Python列表數據,傳入Python列表數據的嵌套層次決定了創建數組的維數。下面給出了創建1維和2維數組的案例,更多維數組的創建與2維數組的創建類同。
(1) 創建1維數組
要創建1維數組,只需在array函數中傳入單層列表數據即可。在程序中使用NumPy數學計算包,需要將NumPy包導入到程序中。
下面的代碼創建了整數類型(int32)的1維數組,數組變量名稱是dim1,np是numpy包的引用名稱,傳入到array函數的是單層列表。
(2)創建2維數組
只要在array函數中傳入兩層嵌套的列表數據即可創建2維數組。下面的代碼創建了浮點類型(float64)的2維數組。
2、使用NumPy的zeros、ones、empty函數創建數組
使用NumPy的zeros、ones、empty函數可以創建指定維數的數組,zeros函數用0填充所有的數組元素,ones函數用1填充所有的數組元素,empty函數用隨機內容填充所有的數組元素。
(1)創建1維數組
下面的代碼分別使用zeros、ones、empty函數創建了a、b、c三個1維數組。a數組有3個元素,元素內容都為0,b數組有5個元素,元素內容都為1,c數組有3個元素,元素內容都為0(填充的元素內容機內容取決於存儲器的狀態)。
(2)創建2維或更多維數組
使用zeros、ones、empty函數創建2維或更多維數組時,需要傳入Python元組數據,元組內的元素個數(元組長度)指定了數組的維度,元素的值指定了當前元素所在的數組維度所包含元素的個數。例如:使用元組(3,4)創建的a數組是2維數組,第1維有三個元素,第2維有4個元素;使用元組(3,2,4)創建的d數組是3維數組,第1維有3個元素,第2維有2個元素,第3維有4個元素。
(3)創建指定類型的數組
使用zeros、ones、empty函數可以創建指定數據類型的數組,zeros、ones、empty函數創建數組時,默認的數據類型是float64,如果需要創建其它數據類型的數組,可以在函數中指定數據類型。
下面的代碼創建數據類型為complex的二維數組。
二、NumPy數組對象的屬性
NumPy的array數組對象提供了一些關鍵屬性,可以輸出數組的特性。下表給出了array數組對象的關鍵屬性名稱及作用。
下面的代碼創建了2維數組a,第1維有2個元素,第2維有3個元素。數組的總元素個數為2*3=6,數組元素的數據類型是int32,每個字節的元素長度是4個字節。