查看数据类型
NumPy支持比Python更多的数据类型。下面介绍一些常用的数据类型,以及这些数据类型之间的转换。
如前面所述,通过“ndarray.dtype”可以创建一个表示数据类型的对象。要想获取数据类型的名称,则需要访问name属性进行获取,示例代码如下。
In [20]: data_one = np.array([[1, 2, 3], [4, 5, 6]])
In [21]: data_one.dtype.name
Out[21]: 'int32'
注意:
在默认情况下,64位windows系统输出的结果为int32, 64位Linux或macOS系统输出结果为int64,当然也可以通过dtype来指定数据类型的长度。
上述代码中,使用dtype属性查看data_one对象的类型,输出结果是int32。从数据类型的命名方式上可以看出,NumPy的数据类型是由一个类型名(如int、float)和元素位长的数字组成。
如果在创建数组时,没有显式地指明数据的类型,则可以根据列表或元组中的元素类型推导出来。默认情况下,通过zeros()、ones()、empty()函数创建的数组中数据类型为float64。
表1罗列了NumPy中常用的数据类型。
表1 NumPy的数据类型
数据类型 | 含义 |
---|---|
bool | 布尔类型,值为True或False |
int8、uint8 | 有符号和无符号的8位整数 |
int16、uint16 | 有符号和无符号的16位整数 |
int32、uint32 | 有符号和无符号的32位整数 |
int64、uint64 | 有符号和无符号的64位整数 |
float16 | 半精度浮点数(16位) |
float32 | 半精度浮点数(32位) |
float64 | 半精度浮点数(64位) |
complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
complex128 | 复数,分别用两个64位浮点数表示实部和虚部 |
object | Python对象 |
string_ | 固定长度的字符串类型 |
unicode | 固定长度的unicode类型 |
每一个NumPy内置的数据类型都有一个特征码,它能唯一标识一种数据类型,具体如表2所示。
表2 NumPy内置特征码
特征码 | 含义 |
---|---|
b | 布尔型 |
u | 无符号整型 |
c | 复数类型 |
S,a | 字节字符串 |
V | 原始数据 |
i | 有符号整型 |
f | 浮点型 |
O | Python对象 |
U | unicode字符串 |