跳转至

NumPy数据类型

在 NumPy 中,数据类型(dtype)用于定义数组中每个元素的类型。这是 NumPy 的核心特性之一,因为它允许数组高效地存储和操作数据。NumPy 提供了一组丰富的内置数据类型,主要包括以下几类:

数值类型

整数类型

  • int8:8 位有符号整数(范围:-128 到 127)
  • int16:16 位有符号整数(范围:-32768 到 32767)
  • int32:32 位有符号整数(范围:-2^31 到 2^31-1)
  • int64:64 位有符号整数(范围:-2^63 到 2^63-1)
  • uint8:8 位无符号整数(范围:0 到 255)
  • uint16:16 位无符号整数(范围:0 到 65535)
  • uint32:32 位无符号整数(范围:0 到 2^32-1)
  • uint64:64 位无符号整数(范围:0 到 2^64-1)

浮点类型

  • float16:16 位半精度浮点数
  • float32:32 位单精度浮点数
  • float64:64 位双精度浮点数

复杂类型

  • complex64:每个复数由两个 32 位浮点数组成(实部和虚部)
  • complex128:每个复数由两个 64 位浮点数组成(实部和虚部)

其他类型

布尔类型

  • bool:布尔值(True 或 False)

字符串类型

  • string_:固定长度的字符串
  • unicode_:固定长度的 Unicode 字符串

自定义数据类型

NumPy 还允许用户创建结构化数据类型(类似于 C 语言中的结构体),这对于处理异构数据(每个元素可能包含不同类型的字段)非常有用。

使用示例

以下是一些创建具有不同数据类型的 NumPy 数组的示例:

import numpy as np

# 创建一个整数数组
int_array = np.array([1, 2, 3, 4], dtype=np.int32)
print(int_array)
print(int_array.dtype)

# 创建一个浮点数数组
float_array = np.array([1.1, 2.2, 3.3, 4.4], dtype=np.float64)
print(float_array)
print(float_array.dtype)

# 创建一个布尔值数组
bool_array = np.array([True, False, True], dtype=np.bool_)
print(bool_array)
print(bool_array.dtype)

# 创建一个复数数组
complex_array = np.array([1+2j, 3+4j], dtype=np.complex128)
print(complex_array)
print(complex_array.dtype)

数据类型转换

可以使用 astype 方法在不同数据类型之间进行转换:

# 将整数数组转换为浮点数数组
int_array = np.array([1, 2, 3, 4], dtype=np.int32)
float_array = int_array.astype(np.float64)
print(float_array)
print(float_array.dtype)

了解和使用 NumPy 的数据类型有助于有效地管理内存和提高计算性能,是进行科学计算和数据分析的重要基础。

评论