1. 程式人生 > >numpy 資料型別與 Python 原生資料型別

numpy 資料型別與 Python 原生資料型別

0. numpy 下的資料型別

  • uint:
    • np.uint, np.uint0, np.uint8, np.uint16, np.uint32, np.uint64
  • int:
    • np.int, np.int0, np.int8, np.int16, np.int32, np.int64
  • float
    • x.astype(‘float32’) 等價於 x.astype(np.float32)
    • np.float, np.float16, np.float32, np.float64

1. 檢視 numpy 資料型別和 Python 原生資料型別之間的對應關係

In [51]: dict([(d, type(np.zeros
(1,d).tolist()[0])) for d in (np.float32, np.float64, np.uint32, np.int16)]) Out[51]: {numpy.float32: float, numpy.int16: int, numpy.uint32: int, numpy.float64: float}

2. 使用 np.asscalar(a) 或 a.item() 進行轉化

這兩種方式僅可轉化單個數值,而不可對 numpy 下的多維陣列進行轉化。

import numpy as np
# examples using a.item()
type(np.float32(0).item()) # <type 'float'> type(np.float64(0).item()) # <type 'float'> type(np.uint32(0).item()) # <type 'long'> # examples using np.asscalar(a) type(np.asscalar(np.int16(0))) # <type 'int'> type(np.asscalar(np.cfloat(0))) # <type 'complex'> type(np.asscalar
(np.datetime64(0)
)) # <type 'datetime.datetime'>
type(np.asscalar(np.timedelta64(0))) # <type 'datetime.timedelta'> ...