numpy 學習彙總46 - dtype屬性( 初步學習 tcy)
阿新 • • 發佈:2018-12-15
np.dtype attributes屬性 2018/6/21 2018/12/6
1.例項
import numpy as np a=np.arange(24).reshape(2,3,4) s=np.dtype({'names':['name','age','marks'],'formats':['S20',np.int32,'f4']}) a1=np.array([[('Tom11', 11, 110),('John12', 12, 120),('Mark13', 13, 130)], [('Tom21', 21, 210),('John22', 22, 220),('Mark23', 23, 230)]], dtype=s) b=a.dtype #dtype('int32') s #dtype([('name', 'S20'), ('age', '<i4'), ('marks', '<f4')])
例項1:
b.base ,s.base #dtype('int32') #dtype([('name', 'S20'), ('age', '<i4'), ('marks', '<f4')]) b.flags ,s.flags #0 #16 b.byteorder,s.byteorder #'=' #'|' b.type ,s.type #<class 'numpy.int32'> #<class 'numpy.void'> b.subdtype,s.subdtype # # b.char ,s.char #'l' #'V' b.descr ,s.descr #[('', '<i4')] #[('name', '|S20'), ('age', '<i4'), ('marks', '<f4')] b.fields ,s.fields # #mappingproxy({'name': (dtype('S20'), 0), 'age': (dtype('int32'), 20), 'marks': (dtype('float32'), 24)}) b.hasobject,s.hasobject #False #False b.isalignedstruct,s.isalignedstruct#False #False b.isbuiltin,s.isbuiltin #1 #0 b.isnative,s.isnative #True #True b.itemsize ,s.itemsize #4 #28 b.kind ,s.kind #'i' #'V' b.name,s.name #'int32' #'void224' b.names ,s.names # #('name', 'age', 'marks') b.ndim,s.ndim #0 #0 b.num,s.num #7 #20 b.shape,s.shape #() #() b.str,s.str #'<i4' #'|V28'
例項2:
# 所有內建資料型別物件都具有'='或'|'位元組順序。 dt = np.dtype('i2') dt.byteorder# '=' # endian端點與8位數無關 np.dtype('i1').byteorder# '|' # or ASCII strings np.dtype('S2').byteorder# '|' # Even if specific code is given, and it is native '=' is the byteorder import sys sys_is_le = sys.byteorder == 'little' # True native_code = sys_is_le and '<' or '>' # '<' swapped_code = sys_is_le and '>' or '<' # '>' dt = np.dtype(native_code + 'i2') dt.byteorder # '=' # Swapped code shows up as itself dt = np.dtype(swapped_code + 'i2') dt.byteorder == swapped_code # True
2.一般型別資料的字元程式碼 (one of ‘biufcmMOSUV’)
b boolean
i signed integer
u unsigned integer
f floating-point
c complex floating-point
m timedelta
M datetime
O object
S (byte-)string
U Unicode
V void
3.屬性簡表
型別 | 說明 | 備註 |
alignment | 根據編譯器此資料型別所需的對齊(位元組) | 1 |
base | 基礎 | dtype('int32') |
byteorder | 資料型別物件位元組順序的字元< 小端;>大端;| 不適用 | '='本地 |
char | 21種不同內建型別中的每一種的唯一字元程式碼 | 'l' |
descr | PEP3118介面描述了資料型別。 | [('', '<i4')] |
fields | 此資料型別定義命名欄位字典或無。 | mappingproxy(, |
- | - | {'name': (dtype('S20'), 0) |
flags | 描述這種資料型別如何解釋的位標誌 | 0 |
hasobject | bool,指示此dtype是否包含任何欄位或子dtype中的引用計數物件 | FALSE |
isalignedstruct | bool指示dtype是否是維護欄位對齊的結構 | FALSE |
isbuiltin | 整數指示這個dtype與內建dtypes的關係 | 1 |
isnative | 布林值,指示此dtype的位元組順序是否是平臺的本地順序。 | TRUE |
Itemsize | 此資料型別物件的元素大小 | 4 |
kind | 資料型別的字元程式碼('biufcmMOSUV') | 'i' |
name | 資料型別名稱。 | 'int32' |
names | 欄位名稱列表,如果沒有欄位,則為無。 | ('name', 'age', 'marks') |
ndim | 則該子陣列的維數,否則為0。 | 0 |
num | 21種不同內建型別中的每一種的唯一編號 | 7 |
shape | 則為子陣列的形狀元組,否則為()。 | () |
str | 此資料型別物件的陣列協議型別字串。 | '<i4' |
type | 用於例項化此資料型別的標量的型別物件 | <class 'numpy.int32'> |
subdtype | 元組(item_dtype,shape)如這個dtype描述一個子陣列則返回None | - |