关于Numpy数据类型对象(dtype)使用详解
常用方法
#记住引入numpy时要是用别名np,则所有的numpy字样都要替换
#查询数值类型
>>>type(float)
dtype('float64')
#查询字符代码
>>>dtype('f')
dtype('float32')
>>>dtype('d')
dtype('float64')
#查询双字符代码
>>>dtype('f8')
dtype('float64')
#获取所有字符代码
>>>sctypeDict.keys()
[0,…'i2','int0']
#char属性用来获取字符代码
>>>t=dtype('Float64')
>>>t.char
'd'
#type属性用来获取类型
>>>t.type
#str属性获取完整字符串表示
#第一个字符是字节序,<表示小端,>表示大端,|表示平台的字节序
>>>t.str
'>>t.itemsize
8
#许多函数拥有dtype参数
#传入数值类型、字符代码和dtype都可以
>>>arange(7,dtype=uint16)
array([0,1,2,3,4,5,6],dtype=uint16)
类型参数及缩写
自定义异构数据类型
基本书写格式
importnumpy
#定义t的各个字段类型
>>>t=dtype([('name',str,40),('numitems',numpy.int32),('price',numpy.float32)])
>>>t
dtype([('name','|S40'),('numitems','>>t['name']
dtype('|S40')
#使用记录类型创建数组
#否则它会把记录拆开
>>>itemz=array([('MeaningoflifeDVD',42,3.14),('Butter',13,2.72)],dtype=t)
>>>itemz[1]
('Butter',13,2.7200000286102295)
#再举个例*
>>>adt=np.dtype("a3,3u8,(3,4)a10")#3字节字符串、3个64位整型子数组、3*4的10字节字符串数组,注意8为字节
>>>itemz=np.array([('Butter',[13,2,3],[['d','o','g','s'],['c','a','t','s'],['c','o','w','s']])],dtype=adt)
>>>itemz
(b'But',[13,2,3],[[b'd',b'o',b'g',b's'],[b'c',b'a',b't',b's'],[b'c',b'o',b'w',b's']])
其他书写格式
#(flexible_dtype,itemsize)第一个大小不固定的参数类型,第二传入大小:
>>>dt=np.dtype((void,10))#10位
>>>dt=np.dtype((str,35))#35字符字符串
>>>dt=np.dtype(('U',10))#10字符unicodestring
#(fixed_dtype,shape)第一个传入固定大小的类型参数,第二参数传入个数
>>>dt=np.dtype((np.int32,(2,2)))#2*2int子数组
举例:>>>item=np.array([([12,12],[55,56])],dtype=dt)
array([[12,12],[55,56]])
>>>dt=np.dtype(('S10',1))#10字符字符串
>>>dt=np.dtype(('i4,(2,3)f8,f4',(2,3)))#2*3结构子数组
#[(field_name,field_dtype,field_shape),…]
>>>dt=np.dtype([('big','>i4'),('little','>>dt=np.dtype([('R','u1'),('G','u1'),('B','u1'),('A','u1')])
#{‘names':…,‘formats':…,‘offsets':…,‘titles':…,‘itemsize':…}:
>>>dt=np.dtype({'names':('Date','Close'),'formats':('S10','f8')})
>>>dt=np.dtype({'names':['r','b'],'formats':['u1','u1'],'offsets':[0,2],'titles':['Redpixel','Bluepixel']})
#(base_dtype,new_dtype):
>>>dt=np.dtype((np.int32,(np.int8,4)))//base_dtype被分成4个int8的子数组
以上这篇关于Numpy数据类型对象(dtype)使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。