numpy:自定義數據類型dtype

需求

除了numpy中內置的dtype,有時我們需要自定義類型。比如想創建一個類似C中的結構數組,這時就需要自定義dtype了(和matlab中的cell也類似)

實例

In [1]:person=np.dtype({'names':['name','age','hometown'],'formats':['S32','i','S32']})
In [2]:person
In [ ]:p=np.dtype([('name','S32'),('age','i'),('hometown','f')])
In [ ]:p
Out[ ]:dtype([('name', 'S32'), ('age', '<i4'), ('hometown', '<f4')])#等價定義

Out[2]:dtype([('name', 'S32'), ('age', '<i4'), ('hometown', 'S32')])
In [2]:group=np.array([('fusheng',21,'sichuan'),('kaka',35,'brazil'),('libai',1000,'tang')],dtype=person)
In [3]:group[1]
Out[3]: (b'kaka', 35, b'brazil')
In [4]:group[0][0]
Out[4]: b'fusheng'
In [5]group[0]['name']
Out[5]: b'fusheng'      #可以看出這兩種索引方式是等價的


 NumPy 用字符編碼來表示數據類型。如下表:
數據類型 字符編碼
整數 i
無符號整數 u
單精度浮點數 f
雙精度浮點數 d
布爾值 b
複數 D
字符串 S
Unicode U
Void V

一個利用自定義dtype的例子:

mytype=np.dtype([('i1',np.complex128),('i2',np.complex128)])
U=np.zeros((3,5),dtype=mytype)





發佈了38 篇原創文章 · 獲贊 31 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章