python numpy 資料型別轉換

2021-08-15 11:06:27 字數 851 閱讀 4318

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....