numpy:自定義資料型別dtype
阿新 • • 發佈:2019-02-16
需求
除了numpy中內建的dtype,有時我們需要自定義型別。比如想建立一個類似C中的結構陣列,這時就需要自定義dtype了(和matlab中的cell也類似)
例項
NumPy 用字元編碼來表示資料型別。如下表: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' #可以看出這兩種索引方式是等價的
資料型別 | 字元編碼 |
---|---|
整數 | 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)