歡迎您光臨本站 註冊首頁

Numpy中ndim、shape、dtype、astype的用法詳解

←手機掃碼閱讀     niceskyabc @ 2020-06-15 , reply:0

本文介紹numpy陣列中這四個方法的區別ndim、shape、dtype、astype。

1.ndim


 

ndim返回的是陣列的維度,返回的只有一個數,該數即表示陣列的維度。

2.shape


 

shape:表示各位維度大小的元組。返回的是一個元組。

對於一維陣列:有疑問的是為什麼不是(1,6),因為arr1.ndim維度為1,元組內只返回一個數。

對於二維陣列:前面的是行,後面的是列,他的ndim為2,所以返回兩個數。

對於三維陣列:很難看出,下面列印arr3,看下它是什麼結構。


 

先看最外面的中括號,包含[[1,2,3],[4,5,6]]和[[7,8,9],[10,11,12]],假設他們為陣列A、B,就得到[A,B],如果A、B僅僅是一個數字,他的ndim就是2,這就是第一個數。但是A、B是(2,3)的陣列。所以結合起來,這就是arr3的shape,為(2,2,3)。

將這種方法類比,也就可以推出4維、5維陣列的shape。

3.dtype


 

dtype:一個用於說明陣列資料型別的物件。返回的是該陣列的資料型別。由於圖中的資料都為整形,所以返回的都是int32。如果陣列中有資料帶有小數點,那麼就會返回float64。

有疑問的是:整形資料不應該是int嗎?浮點型資料不應該是float嗎?

解答:int32、float64是Numpy庫自己的一套資料型別。

4.astype


 

astype:轉換陣列的資料型別。

int32 --> float64        完全ojbk

float64 --> int32        會將小數部分截斷

string_ --> float64        如果字串陣列表示的全是數字,也可以用astype轉化為數值型別


 

注意其中的float,它是python內建的型別,但是Numpy可以使用。Numpy會將Python型別對映到等價的dtype上。

以上是這四個方法的簡單用法,之後若有什麼新發現再做補充。


[niceskyabc ] Numpy中ndim、shape、dtype、astype的用法詳解已經有245次圍觀

http://coctec.com/docs/program/show-post-238637.html