Numpy的dtype设置方法

import numpy as np
'''
布尔值 bool_
有符号整数型  int8(-128~127)/int16/int32/int64
无符号整数型  uint8(0~255)/uint16/uint3.2/uint64
浮点型       float16/float32/float64
复数型       complex64/complex128
字串型       str_,每个字符用32位Unicode编码表示
'''
# ndarry->不可以放对象

# 自定义复合类型
data=[
    ('zssss', [90,80,85],15),
    ('ls', [92,81,83],16),
    ('ww', [95,85,95],15),
]

# 第一种设置dtype的方式
# U要大写 --> U2表示的是unicode字符出现2个-->一个Unicode占32位二进制
# 3int32 --> 3个32位的二进制数
# dtype 设置数据类型每一行的每一列的数据类型
a=np.array(data,dtype='U2,3int32,int32')
print(a[1][1],'\n')

# 第二种设置dtype的方式
# 给每一列数据设置别名
b=np.array(data,dtype= [('name','2str'),
                        ('score','3int32'),
                        ('ages','int32')])
print(b[2]['name'])

# 第三种设置dtype的方式 U2=2str
c=np.array(data,dtype={'names':['name','scores','ages'],
                       'formats':['U2','3int32','int32']})
print(c[0]['name'],c[0]['scores'],c)

# 第四种设置dtype的方式  ('U3',0)表示从0开始读取数据, U3=3str32=32*3/8=12字节
#                       中间12到16之间是没有数据的
#                     ('3int32',16)从16个字节开始读取数据 3int32=3*32/8=12
d=np.array(data,dtype={'names':('U3',0),
                       'scores':('3int32',16),
                       'ages':('int32',28)})

print('*'*45)
# 测试数组中存储日期数据类型
dates =['2011-01-01',
        '2011',
        '2011-02',
        '2012-01-01',
        '2012-02-01 10:10:00']
daytime=np.array(dates)
print(daytime,daytime.dtype) # daytime.dtype= '
np.datetime64       M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s]

简写比如 
    3int32 == 3i4 --> 32表示4个字节
    4float == 4f4  
    3str   == 3U<字符数>   
'''

你可能感兴趣的:(笔记,python,深度学习,机器学习)