NumPy数据类型和转换

NumPy里面的数据类型dtype跟Python内置的数据类型有一些不同的地方,它有精度更高的类型,这跟它用于数据计算的特性是相关的。

NumPy的数据类型

类型 说明
bool 布尔型
int8 8位有符号整数
int16 16位有符号整数
int32 32位有符号整数
int64 64位有符号整数
uint8 8位无符号整数
uint16 16位无符号整数
uint32 32位无符号整数
uint64 64位无符号整数
float16 16位浮点数
float32 32位浮点数
float64 64位浮点数
complex64 64位复数
complex128 128位复数

在新建一个ndarray数据时,你可以通过字符串或者numpy库里面的数据类型常量来制定元素的数据类型

import numpy as np

# 通过字符串来指定数据类型
test = np.array([4, 5, 6], dtype='int64')

#通过np内的常量来指定
test = np.array([7, 8, 8], dtype=np.int64)

数据类型转换

在实例创建好了之后,可以通过数据类型转换方法astype()将元素的类型变成另外的一种,比如从整型变到浮点型,等等。

>>> import numpy as np
>>> test = np.array([11, 12, 13, 14], dtype="int32")
>>> x = test.astype('float32')
>>> x
array([11., 12., 13., 14.], dtype=float32)
>>> test, test.dtype
(array([11, 12, 13, 14]), dtype('int32'))
注意
数据类型转换方法只会返回一个全新的数组,而原数组实例的数据和信息并没有改变。