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中常用的数据类型。
表1NumPy的数据类型
数据类型
含义
bool
布尔类型,值为True或False
int8、uint8
有符号和无符号的8位整数
int16、uint16
有符号和无符号的16位整数
int32、uint32
有符号和无符号的32位整数
int64、uint64
有符号和无符号的64位整数
float16
半精度浮数(16位)
float32
半精度浮数(32位)
float64
半精度浮数(64位)
plex64
复数,分别用两个32位浮数表示实部和虚部
plex128
复数,分别用两个64位浮数表示实部和虚部
object
Python对象
string_
固定长度的字符串类型
unicode
固定长度的unicode类型
每一个NumPy内置的数据类型都有一个特征码,它能标识一种数据类型,具体如表2所示。
表2NumPy内置特征码
特征码
含义
b
布尔型
u
无符号整型
c
复数类型
S,a
字节字符串
V
原始数据
i
有符号整型
f
浮型
O
Python对象
U
unicode字符串
numpy是什么数据类型