numpy資料型別轉換需要呼叫方法astype(),不能直接修改dtype。呼叫astype返回資料型別修改後的資料,但是源資料的型別不會變,需要進一步對源資料的賦值操作才能改變。例如
>>> a=np.array([1.1, 1.2])
>>> a.dtype
dtype('float64')
>>> a.astype(np.int16)
array([1, 1], dtype=int16)
>>> a.dtype
dtype('float64') #a的資料型別並沒有變
>>> a=a.astype(np.int16) #賦值操作後a的資料型別變化
>>> a.dtype
dtype('int16')
>>> a
array([1, 1], dtype=int16)
直接修改dtype資料會強制用新資料型別表示,並沒有轉換,因此輸出錯誤資料
>>> a=np.array([1.1, 1.2])
>>> a.dtype
dtype('float64')
>>> a.dtype=np.int16
>>> a.dtype
dtype('int16')
>>> a
array([-26214, -26215, -26215, 16369, 13107, 13107, 13107, 16371], dtype=int16)
#原來float64相當於4個int16的位寬,這樣強制轉換後會將他們直接拆開成4個數,
#因此原來的兩個float64成了8個int16
Python numpy資料型別
本章內容了解 numpy 資料。numpy陣列屬性詳見 numpy 支援的資料型別比 python 內建的型別要多很多,基本上可以和 c 語言的資料型別對應上,其中部分型別對應為 python 內建的型別。下表列舉了常用 numpy 基本型別。名稱描述 bool 布林型資料型別 true 或者 fa...
python numpy 資料型別轉換
python numpy 資料型別轉換 numpy資料型別轉換需要呼叫方法astype 不能直接修改dtype。呼叫astype返回資料型別修改後的資料,但是源資料的型別不會變,需要進一步對源資料的賦值操作才能改變。例如 a np.array 1.1,1.2 a.dtype dtype float6...
python numpy 資料型別轉換
a np.array 1.1,1.2 a.dtype dtype float64 a.astype np.int16 array 1,1 dtype int16 a.dtype dtype float64 a的資料型別並沒有變 a a.astype np.int16 賦值操作後a的資料型別變化 a....