numpy學習(數組的定義及基礎屬性)


NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。你可以利用這種數組對整塊數據執行一些數學運算,ndarray是一個通用的同構數據多維容器,也就是說,其中的所有元素必須是相同類型的。每個數組都有一個shape(一個表示各維度大小的元組)和一個dtype(一個用於說明數組數據類型的對象)。

數組的創建

  • 通過array方法創建:

創建ndarray;

查看ndarray的維度:

兩維數組:通過ndim屬性查看

還是一個兩維數組,不是三維:

為什么只有兩維而不是三維?因為只嵌套了兩層,而且這也是3x3的一個陳列,相當於只有兩個軸,兩個軸就是兩個維度,看看三維是什么樣的?俏不俏!

多維也就是在外面嵌套一層,當然這個三維數組中只有一個元素。

 

查看維度的大小,如下只有兩個維度,所以對應兩個大小:通過shape屬性查看

除非顯式說明(稍后將會詳細介紹),np.array會嘗試為新建的這個數組推斷出一個較為合適的數據類型。

除np.array之外,還有一些函數也可以新建數組。比如,zeros和ones分別可以創建指定長度或形狀的全0或全1數組。empty可以創建一個沒有任何具體值的數組。要用這些方法創建多維數組,只需傳入一個表示形狀的元組即可:

一維:

二維:

 

empty可以創建一個沒有任何具體值的數組。要用這些方法創建多維數組,只需傳入一個表示形狀的元組即可:

認為np.empty會返回全0數組的想法是不安全的。很多情況(如前所示),它返回的都是一些未初始化的垃圾值。

 

arange是Python內置函數range的數組版:

下表列出了一些數組創建函數。由於NumPy關注的是數值計算,因此,如果沒有特別指定,數據類型基本都是float64(浮點數)。

 

ndarray的數據類型dtype(數據類型)是一個特殊的對象,它含有ndarray將一塊內存解釋為特定數據類型所需的信息:

數值型dtype的命名方式:一個類型名(如float或int),后面跟一個用於表示各元素位長的數字。標准的雙精度浮點值(即Python中的float對象)需要占用8字節(即64位)。因此,該類型在NumPy中就記作float64。表4-2列出了NumPy所支持的全部數據類型。

可以通過ndarray的astype方法顯式地轉換其dtype

通過astype不會改變源數組的數據類型,通過賦值給變量可以復制源數據並且數據類型為改變后的類型

調用astype無論如何都會創建出一個新的數組(原始數據的一份拷貝),即使新dtype跟老dtype相同也是如此。警告:注意,浮點數(比如float64和float32)只能表示近似的分數值。在復雜計算中,由於可能會積累一些浮點錯誤,因此比較操作只能在一定小數位以內有效。

可通過另一種方式改變數組的數據類型:

 

使用4-2中的類型代碼,以下為為11個長度的字符串

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM