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'))
注意
数据类型转换方法只会返回一个全新的数组,而原数组实例的数据和信息并没有改变。