2、建立資料型別
3、資料型別資訊
numpy 支援的資料型別比 python 內建的型別要多很多,基本上可以和 c 語言的資料型別對應上,其中部分型別對應為 python 內建的型別。下表列舉了常用 numpy 基本型別。為了區別於 python 原生的資料型別,bool、int、float、complex、str 等型別名稱末尾都加了 「_」:
型別備註
說明字元**
int8 = byte
8位整型
『i1』
int16 = short
16位整型
『i2』
int32 = intc
32位整型
『i4』
int_ = int64 = long = int0 = intp
64位整型
『i8』
型別備註
說明字元**
uint8 = ubyte
8位無符號整型
『u1』
uint16 = ushort
16位無符號整型
『u2』
uint32 = uintc
32位無符號整型
『u4』
uint64 = uintp = uint0 = uint
64位無符號整型
『u8』
型別備註
說明字元**
float16 = half
16位浮點型
『f2』
float32 = single
32位浮點型
『f4』
float_ = float64 = double
64位浮點型
『f8』
型別備註
說明字元**
bool_ = bool8
8位布林型別
『b1』
str_ = unicode_ = str0 = unicode
unicode 字串
『u』datetime64
日期時間型別
『m』timedelta64
表示兩個時間之間的間隔
『m』
print(numpy.dtype) 所顯示的都是 numpy 中的資料型別,而非 python原生資料型別。實際上是 dtype 物件的例項
#dtype原始碼
class
dtype
(object):
def__init__
(self, obj, align=
false
, copy=
false):
pass
在這裡,我們新建乙個函式gendtype,用來生成檢視不同資料型別,然後集中測試:
def
gendtype
(str):
a = np.dtype(
str)
print
(a.type)#
print
(a.itemsize)
#集中測試
strlist =
['b1'
,'i1'
,'i2'
,'i4'
,'i8'
,'u1'
,'u2'
,'u4'
,'u8'
,'f2'
,'f4'
,'f8'
,'s'
,'s3'
,'u3'
]for x in strlist:
gendtype(x)
11我們注意到這裡itemsize的單位是位元組,值得注意的是型別為』s』的dtype大小為0,而』s3』大小為3,另外』u』的單個大小為4位元組,即32位。2481
2482
4803
12
python 的浮點數通常是64位浮點數,幾乎等同於 np.float64。
numpy和python整數型別的行為在整數溢位方面存在顯著差異,與 numpy 不同,python 的int 是靈活的。這意味著python整數可以擴充套件以容納任何整數並且不會溢位,這就是說numpy是有長度顯示的,那麼我們來看一下不同資料型別的顯示範圍。
#iinfo定義原始碼
class
iinfo
(object):
def__init__
(self, int_type)
:pass
defmin
(self)
:pass
defmax
(self)
:pass
可以看到iinfo類的初始化引數裡面有乙個int_type,是提供給呼叫者使用。
ii16 = np.iinfo(np.int16)
print
(ii16.
min)
print
(ii16.
max)
ii32 = np.iinfo(np.int32)
print
(ii32.
min)
print
(ii32.
max)
結果顯示:
-32768同理,浮點數在numpy中也有範圍限制,先看定義:32767
-2147483648
2147483647
#finfo定義原始碼
class
finfo
(object):
def_init
(self, dtype)
:
ff16 = np.finfo(np.float16)
print
(ff16.bits)
print
(ff16.
min)
print
(ff16.
max)
print
(ff16.eps)
ff32 = np.finfo(np.float32)
print
(ff32.bits)
print
(ff32.
min)
print
(ff32.
max)
print
(ff32.eps)
16其中,eps是乙個很小的非負數,除法的分母不能為0的,不然會直接跳出顯示錯誤。使用eps將可能出現的零用eps來替換,這樣不會報錯。-65500.0
65500.0
0.000977 32
-3.4028235e+38
3.4028235e+38
1.1920929e-07
Numpy 02 Numpy 資料型別和常用方法
目錄 二 基本用法及方法 從給的格式可以看出,這些都是在 numpy 上衍生的物件。ndarray numpy.ndarray dtype numpy.dtype array numpy.array 資料型別 numpy.ndarray 是 numpy 中一種基本的資料物件,它是一系列同型別資料的集...
NumPy 資料型別
numpy 支援比 python 更多種類的數值型別。下表顯示了 numpy 中定義的不同標量資料型別。序號資料型別及描述 1.bool 儲存為乙個位元組的布林值 真或假 2.int 預設整數,相當於 c 的long,通常為int32或int64 3.intc相當於 c 的int,通常為int32或...
NumPy 資料型別
numpy提供的數值型別,數值範圍比python提供的數值型別更大。numpy的數值型別,如下表所示 sn資料型別描述1 bool 布林值,取值ture false,占用乙個位元組 2int 是integer的預設型別。與c語言中的long型別相同,有可能是64位或32位。3intc 類似於c語言中...