numpy.dtype#
- class numpy.dtype(dtype, align=False, copy=False[, metadata])[source]#
建立資料類型物件。
NumPy 陣列是同質的,且包含由 dtype 物件描述的元素。dtype 物件可以由基本數值類型的不同組合建構而成。
- 參數:
- dtype
要轉換為資料類型物件的物件。
- alignbool,選用
為欄位添加填充,以符合 C 編譯器針對類似 C 結構輸出的結果。只有當 obj 是字典或逗號分隔字串時,才能為
True
。如果正在建立結構 dtype,這也會設定黏性對齊旗標isalignedstruct
。- copybool,選用
建立資料類型物件的新副本。如果為
False
,則結果可能只是對內建資料類型物件的參考。- metadatadict,選用
具有 dtype metadata 的選用字典。
另請參閱
範例
使用陣列純量類型
>>> import numpy as np >>> np.dtype(np.int16) dtype('int16')
結構化類型,一個欄位名稱 ‘f1’,包含 int16
>>> np.dtype([('f1', np.int16)]) dtype([('f1', '<i2')])
結構化類型,一個欄位名稱為 ‘f1’,本身包含一個具有一個欄位的結構化類型
>>> np.dtype([('f1', [('f1', np.int16)])]) dtype([('f1', [('f1', '<i2')])])
結構化類型,兩個欄位:第一個欄位包含一個無號整數,第二個欄位包含一個 int32
>>> np.dtype([('f1', np.uint64), ('f2', np.int32)]) dtype([('f1', '<u8'), ('f2', '<i4')])
使用陣列協定類型字串
>>> np.dtype([('a','f8'),('b','S10')]) dtype([('a', '<f8'), ('b', 'S10')])
使用逗號分隔的欄位格式。形狀為 (2,3)
>>> np.dtype("i4, (2,3)f8") dtype([('f0', '<i4'), ('f1', '<f8', (2, 3))])
使用元組。
int
是一種固定類型,3 是欄位的形狀。void
是一種彈性類型,此處大小為 10>>> np.dtype([('hello',(np.int64,3)),('world',np.void,10)]) dtype([('hello', '<i8', (3,)), ('world', 'V10')])
將
int16
細分為 2 個int8
,稱為 x 和 y。0 和 1 是位元組偏移量>>> np.dtype((np.int16, {'x':(np.int8,0), 'y':(np.int8,1)})) dtype((numpy.int16, [('x', 'i1'), ('y', 'i1')]))
使用字典。兩個欄位分別命名為 ‘gender’ 和 ‘age’
>>> np.dtype({'names':['gender','age'], 'formats':['S1',np.uint8]}) dtype([('gender', 'S1'), ('age', 'u1')])
位元組偏移量,此處為 0 和 25
>>> np.dtype({'surname':('S25',0),'age':(np.uint8,25)}) dtype([('surname', 'S25'), ('age', 'u1')])
- 屬性:
alignment
根據編譯器,此資料類型所需的對齊方式(位元組)。
base
傳回子陣列基本元素的 dtype,無論其維度或形狀為何。
byteorder
一個字元,指示此資料類型物件的位元組順序。
char
每個 21 種不同內建類型的唯一字元碼。
descr
__array_interface__ 資料類型描述。
fields
為此資料類型定義的具名字段字典,或
None
。flags
描述如何解譯此資料類型的位元旗標。
hasobject
布林值,指示此 dtype 是否在任何欄位或子 dtype 中包含任何參考計數物件。
isalignedstruct
布林值,指示 dtype 是否為維護欄位對齊的結構。
isbuiltin
整數,指示此 dtype 與內建 dtype 的關聯性。
isnative
布林值,指示此 dtype 的位元組順序是否為平台原生。
itemsize
此資料類型物件的元素大小。
kind
一個字元碼(‘biufcmMOSUV’ 之一),識別資料的一般種類。
metadata
None
或 metadata 的唯讀字典 (mappingproxy)。name
此資料類型的位元寬度名稱。
names
欄位名稱的排序清單,如果沒有欄位則為
None
。ndim
如果此資料類型描述子陣列,則為子陣列的維度數量,否則為
0
。num
每個 21 種不同內建類型的唯一數字。
shape
如果此資料類型描述子陣列,則為子陣列的形狀元組,否則為
()
。str
此資料類型物件的陣列協定類型字串。
subdtype
如果此
dtype
描述子陣列,則為元組(item_dtype, shape)
,否則為 None。- type
方法
newbyteorder
([new_order])傳回具有不同位元組順序的新 dtype。