常见数据类型 Numpy支持的数据类型比Python内置的数据类型多很多,下表是Numpy的数据类型,其中为了和Python内置的数据类型做区分,bool、int、float、complex后面加了 “_” 。
类型长度名称bool_8布尔类型int88整型int1616整型int3232整型int_64整型unit88无符号整型unit1616无符号整型unti3232无符号整型unit6464无符号整型float1616浮点型float3232浮点型float_64浮点型str_字符串datetime64日期时间类型timedelta64表示两个时间之间的间隔创建数据类型 numpy的数值类型实际上是的dtype对象的实例
class dtype(object); def __init__(self, obj, align=False, copy=False) pass参数解释: object - 要转换为的数据类型对象 align - 如果为 true,填充字段使其类似 C 的结构体 copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用 每个内建类型都有一个唯一定义它的字符代码,如下表:
字符代码对应类型备注bbooleanb1isigned integeri1, i2, i4, i8uunsigned integeru1, u2, u4, u8ffloating-pointf2, f4, f8mtimedelta64表示两个时间之间的间隔Mdatetime64日期时间类型OobjectS(byte-)stringS3表示长度为3的字符串UUnicodeUnicode 字符串Vvoid例1. 创建一个布尔类型的变量
import numpy as np a = np.dtype('b1') print(a.type) # 输出a的变量类型 print(a.itemsize) # 输出a的字节数输出
<class 'numpy.bool_'> 1由结果可知:变量a为布尔类型且长度为一个字节 例2. 创建一个整数类型的变量
import numpy as np a = np.dtype(np.int8) print(a.type) print(a.itemsize)输出
<class 'numpy.int8'> 1由结果可知:变量a为整数类型且长度为一个字节 Numpy与Python数据类型差异点 Numpy与Python在整数溢出方面存在着差异,Python整数可以扩展以容纳任何整数并且不会溢出,Numpy中是有范围限制的。
import numpy as np ii16 = np.iinfo(np.int16) print(ii16.min) print(ii16.max) ff16 = np.finfo(np.float16) print(ff16.bits) print(ff16.min) print(ff16.max) print(ff16.eps)输出:
-32768 32767 16 -65500.0 65500.0 0.000977由结果分析:Numpy中整数和浮点数都是存在范围的。