NumPy 数据类型


NumPy,即Numerical Python,是Python中一个强大的数值计算库,主要用于处理多维数组(ndarray)及其相关计算。而作为数组的基本元素,NumPy也提供了许多不同的数据类型,用以满足不同程度的精度、存储空间及使用场景。

NumPy中的数据类型可以分为三大类:整数类型、浮点类型和复数类型。其中,整数类型又可分为有符号整数和无符号整数两类。

有符号整数类型:

  • int8、int16、int32、int64:分别为8、16、32、64位带符号整数类型,取值范围分别为-128~127、-32768~32767、-2147483648~2147483647、-9223372036854775808~9223372036854775807。
  • integer:这是一个特殊的整数类型,其大小由机器字长决定。在32位系统上,integers等同于int32,而在64位系统上,integer等同于int64。

无符号整数类型:

  • uint8、uint16、uint32、uint64:分别为8、16、32、64位无符号整数类型,取值范围分别为0~255、0~65535、0~4294967295、0~18446744073709551615。

浮点类型包括单精度和双精度两种:

  • float16:16位单精度浮点数,精度为约1e-3。
  • float32(float):32位单精度浮点数,精度约为1e-7。
  • float64(double):64位双精度浮点数,精度约为1e-16。

复数类型:

  • complex64:由两个32位浮点数构成的复数类型,分别表示实部和虚部,精度和float32一致。
  • complex128:由两个64位浮点数构成的复数类型,分别表示实部和虚部,精度和float64一致。

除了以上几种基本数据类型之外,NumPy还提供了字符串类型和布尔类型:

  • string_:定长字符串类型。
  • bool_:布尔类型,取值为True或False。

除了这些数据类型外,NumPy还提供了一些其他的数据类型,如datetime64(日期时间类型)、timedelta64(时间间隔类型)等,以满足更加丰富的数据处理需求。

使用NumPy时,我们可以通过dtype参数指定数组的数据类型,例如:

import numpy as np

arr1 = np.array([1, 2, 3], dtype=np.int32)
arr2 = np.array([1.0, 2.0, 3.0], dtype=np.float64)
arr3 = np.array([1+2j, 2+3j, 3+4j], dtype=np.complex128)

在NumPy中,数据类型具有很强的整合性和可扩展性。在实际使用过程中,我们可以根据需要选择不同的数据类型,以达到最优的性能和内存使用效率。