NumPy 数据类型

数据类型是指定数组将存储的数据类型的一种方式。例如,

array1 = np.array([2, 4, 6])

这里,array1 数组包含三个整数元素,所以数据类型是整数(int64)),这是默认设置。

NumPy 为我们提供了几种内置的数据类型,可以有效地表示数值数据。


NumPy 数据类型

NumPy 提供了比 Python 更广泛的数值数据类型。以下是 NumPy 中最常用的数值数据类型列表:

  1. int8int16int32int64 - 不同位数的有符号整数类型
  2. uint8uint16uint32uint64 - 不同位数的无符号整数类型
  3. float32float64 - 不同精度的浮点类型
  4. complex64complex128 - 不同精度的复数类型

检查 NumPy 数组的数据类型

要检查 NumPy 数组的数据类型,我们可以使用 dtype 属性。例如,

import numpy as np

# create an array of integers 
array1 = np.array([2, 4, 6])

# check the data type of array1
print(array1.dtype) 

# Output: int64

在上面的例子中,我们使用 dtype 属性来检查 array1 数组的数据类型。

由于 array1 是一个整数数组,因此 array1 的数据类型默认推断为 int64


示例:检查 NumPy 数组的数据类型

import numpy as np

# create an array of  integers
int_array = np.array([-3, -1, 0, 1])

# create an array of floating-point numbers
float_array = np.array([0.1, 0.2, 0.3])

# create an array of complex numbers
complex_array = np.array([1+2j, 2+3j, 3+4j])

# check the data type of int_array
print(int_array.dtype)  # prints int64

# check the data type of float_array
print(float_array.dtype)  # prints float64

# check the data type of complex_array
print(complex_array.dtype)  # prints complex128

输出

int64
float64
complex128

在这里,我们创建了不同类型的数组,并使用 dtype 属性检查了这些数组的默认数据类型。

  • int_array - 包含四个整数元素,其默认数据类型为 int64
  • float_array - 包含三个浮点数,其默认数据类型为 float64
  • complex_array - 包含三个复数,其默认数据类型为 complex128

创建具有定义数据类型的 NumPy 数组

在 NumPy 中,我们可以在调用 np.array() 函数时通过传递 dtype 参数来创建具有定义数据类型的数组。例如,

import numpy as np

# create an array of 32-bit integers
array1 = np.array([1, 3, 7], dtype='int32')

print(array1, array1.dtype)

输出

[1 3 7] int32

在上面的例子中,我们创建了一个名为 array1 的 NumPy 数组,并定义了其数据类型。

请注意以下代码,

np.array([1, 3, 7], dtype='int32')

这里,在 np.array() 中,我们传递了一个数组 [1, 3, 7] 并将 dtype 参数设置为 int32

由于我们将数组的数据类型设置为 int32,因此数组的每个元素都表示为一个 32 位整数。


示例:创建具有定义数据类型的 NumPy 数组

import numpy as np

# create an array of 8-bit integers
array1 = np.array([1, 3, 7], dtype='int8')

# create an array of unsigned 16-bit integers
array2 = np.array([2, 4, 6], dtype='uint16')

# create an array of 32-bit floating-point numbers
array3 = np.array([1.2, 2.3, 3.4], dtype='float32')

# create an array of 64-bit complex numbers
array4 = np.array([1+2j, 2+3j, 3+4j], dtype='complex64')

# print the arrays and their data types
print(array1, array1.dtype)
print(array2, array2.dtype)
print(array3, array3.dtype)
print(array4, array4.dtype)

输出

[1 3 7] int8
[2 4 6] uint16
[1.2 2.3 3.4] float32
[1.+2.j 2.+3.j 3.+4.j] complex64

NumPy 类型转换

在 NumPy 中,我们可以使用 astype() 方法转换数组的数据类型。例如,

import numpy as np

# create an array of integers
int_array = np.array([1, 3, 5, 7])

# convert data type of int_array to float
float_array = int_array.astype('float')

# print the arrays and their data types
print(int_array, int_array.dtype)
print(float_array, float_array.dtype)

输出

[1 3 5 7] int64
[1. 3. 5. 7.] float64

在这里,int_array.astype('float') 使用 astype()int_array 的数据类型从 int64 转换为 float64

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战