改变给定的numpy数组的数据类型

  • Post category:Python

如果需要改变给定的numpy数组的数据类型,我们可以使用numpy.ndarray.astype方法来完成操作。它将每个元素映射到新的数据类型并返回新的数组副本,原始数组保持不变。

以下是完整的操作步骤:

1.了解原始数组的数据类型

在进行数据类型转换之前,需要先了解原始数组的数据类型。我们可以使用numpy.ndarray.dtype方法来获取原始数组的数据类型。示例代码如下:

import numpy as np

# 创建一个随机整数数组
arr = np.random.randint(0, 10, size=5)

# 输出原始数组的数据类型
print("原始数组的数据类型:", arr.dtype)

输出结果为:

原始数组的数据类型: int64

可以看到,这个随机整数数组的数据类型为int64。

2.创建新的数据类型

根据需要改变的数据类型,我们需要创建一个新的数据类型。新的数据类型可以通过numpy.dtype方法来创建。示例代码如下:

# 创建一个新的数据类型
new_dtype = np.dtype('float32')

# 输出新的数据类型
print("新的数据类型:", new_dtype)

输出结果为:

新的数据类型: float32

这里创建了一个新的数据类型float32。

3.使用astype方法进行数据类型转换

使用numpy.ndarray.astype方法和新的数据类型进行数据类型转换。代码示例如下:

# 使用astype方法进行数据类型转换
new_arr = arr.astype(new_dtype)

# 输出新的数组和数据类型
print("新的数组:", new_arr)
print("新的数组的数据类型:", new_arr.dtype)

输出结果为:

新的数组: [2. 2. 1. 1. 5.]
新的数组的数据类型: float32

可以看到,原始的随机整数数组经过数据类型转换后,变成了新的浮点数数组。

另外一个示例是将字符串数组转换成整数类型的数组,示例代码如下:

# 创建一个字符串数组
str_arr = np.array(['1', '2', '3', '4', '5'])

# 将字符串数组转换成整数类型的数组
int_arr = str_arr.astype(int)

# 输出新的数组和数据类型
print("新的数组:", int_arr)
print("新的数组的数据类型:", int_arr.dtype)

输出结果为:

新的数组: [1 2 3 4 5]
新的数组的数据类型: int64

可以看到,字符串数组被成功地转换成了整数类型的数组。