NumPy数据类型 NumPy ndarray对象 NumPy数组属性 NumPy支持比Python更多的数字类型。下表显示了在NumPy中定义的不同标量数据类型。 Sr.No. 数据类型和说明 1 bool_ 布尔(True或False)存储为一个字节 2 int_ 默认整数类型(与C long相同;通常是int64或int32) 3 intc 与C int相同(通常为int32或int64) 4 intp 用于索引的整数(与C ssize_t相同;通常为int32或int64) 5 int8 字节(-128至127) 6 int16 整数(-32768至32767) 7 int32 整数(-2147483648至2147483647) 8 int64 整数(-9223372036854775808至9223372036854775807) 9 uint8 无符号整数(0到255) 10 uint16 无符号整数(0到65535) 11 uint32 无符号整数(0到4294967295) 12 uint64 无符号整数(0到18446744073709551615) 13 float_ float64的简写 14 float16 半精度浮点:符号位,5位指数,10位尾数 15 float32 单精度浮点数:符号位,8位指数,23位尾数 16 float64 双精度浮点:符号位,11位指数,52位尾数 17 complex_ 复杂的速记128 18 complex64 复数,由两个32位浮点数(实部和虚部) 19 complex128 复数,由两个64位浮点数(实部和虚部) NumPy数字类型是dtype(数据类型)对象的实例,每个对象都有独特的特征。该dtypes可用作np.bool_,np.float32等。 数据类型对象(dtype) 数据类型对象根据以下几个方面描述对应于数组的固定内存块的解释 - 数据类型(整型,浮点型或Python对象) 数据的大小 字节顺序(小端或大端) 在结构化类型的情况下,字段的名称,每个字段的数据类型和每个字段占用的存储器块的一部分。 如果数据类型是子阵列,则它的形状和数据类型 字节顺序由数据类型前缀'<'或'>'决定。'<'表示编码是小端(最小有效值存储在最小地址中)。'>'表示编码是大端(最高有效字节存储在最小地址中)。 一个dtype对象使用以下语法构造 - numpy.dtype(object, align, copy) 参数是 - Object - 被转换为数据类型对象 Align - 如果为true,则向该字段添加填充以使其类似于C-struct Copy - 制作dtype对象的新副本。 如果为false,则结果是对内置数据类型对象的引用 例1 # using array-scalar type import numpy as np dt = np.dtype(np.int32) print dt 输出如下 - int32 例2 #int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc. import numpy as np dt = np.dtype('i4') print dt 输出如下 - int32 例3 # using endian notation import numpy as np dt = np.dtype('>i4') print dt 输出如下 - >i4 以下示例显示了使用结构化数据类型。这里要声明字段名称和相应的标量数据类型。 例4 # first create structured data type import numpy as np dt = np.dtype([('age',np.int8)]) print dt 输出如下 - [('age', 'i1')] 例5 # now apply it to ndarray object import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a 输出如下 - [(10,) (20,) (30,)] 例6 # file name can be used to access content of age column import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,),(30,)], dtype = dt) print a['age'] 输出如下 - [10 20 30] 例子7 以下示例定义了一个名为 student 的结构化数据类型,其中包含一个字符串字段'name',一个 整数字段 'age'和一个 浮点字段 'marks'。 这个dtype被应用于ndarray对象。 import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) print student 输出如下 - [('name', 'S20'), ('age', 'i1'), ('marks', '<f4')]) 例8 import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) print a 输出如下 - [('abc', 21, 50.0), ('xyz', 18, 75.0)] 每个内置数据类型都有一个唯一标识它的字符代码。 'b' - 布尔值 'i' - (带符号)整数 'u' - 无符号整数 'f' - 浮点 'c' - 复数浮点 'm' - timedelta 'M' - 日期时间 'O' - (Python)对象 'S','a' - (字节)字符串 'U' - Unicode 'V' - 原始数据(void) NumPy ndarray对象 NumPy数组属性