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)





发布了47 篇原创文章 · 获赞 33 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/kaever/article/details/68945075
今日推荐