NumPy IO学习笔记

NumPy是Python中常用的一个科学计算库。在NumPy库中,提供了多种数据读写的方法,使得我们可以方便地读写各种类型的数据文件,如文本文件、二进制文件等。本文将介绍NumPy库中各种数据读写方法的使用,以及一些实例演示。

读写文本文件

NumPy中提供了许多读写文本文件的函数,包括:

  • loadtxt():读取纯文本文件中的数据。
  • savetxt():将数组保存到纯文本文件中。
  • genfromtxt():灵活读取文本文件中的数据,并自动处理缺失值。

使用loadtxt()读取文本文件

loadtxt()函数可以读取纯文本文件中的数据,并将其转换为一个NumPy数组。例如,下面的代码演示了如何读取一个名为data.txt的文本文件:

pythonCopy Code
import numpy as np # 读取文本文件 data = np.loadtxt('data.txt') print(data)

该文本文件的内容如下:

Copy Code
1,2,3 4,5,6 7,8,9

上述代码执行的输出结果是:

Copy Code
array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])

使用savetxt()写入文本文件

savetxt()函数可以将一个NumPy数组保存到一个纯文本文件中。例如,下面的代码演示了如何将一个名为data.txt的NumPy数组写入一个文本文件中:

pythonCopy Code
import numpy as np # 创建一个NumPy数组 data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 将数组写入文本文件 np.savetxt('data.txt', data)

执行上述代码后,会在当前工作目录下创建一个名为data.txt的文本文件,并将NumPy数组中的数据保存到该文件中。

使用genfromtxt()读取带有缺失值的文本文件

如果文本文件中包含缺失值,我们可以使用genfromtxt()函数来灵活地处理这些缺失值。例如,下面的代码演示了如何读取一个名为data.txt的文本文件,该文件中包含了一些缺失值:

pythonCopy Code
import numpy as np # 读取带有缺失值的文本文件 data = np.genfromtxt('data.txt', delimiter=',') print(data)

该文本文件的内容如下:

Copy Code
1,-999,3 4,5,-999 7,8,9

上述代码执行的输出结果是:

Copy Code
array([[ 1., nan, 3.], [ 4., 5., nan], [ 7., 8., 9.]])

读写二进制文件

除了读写文本文件外,NumPy库还提供了读写二进制文件的函数,包括:

  • load():读取以NumPy格式保存的二进制数据文件。
  • save():将数组以NumPy格式保存到二进制数据文件中。

使用load()读取二进制文件

load()函数可以读取以NumPy格式保存的二进制数据文件,并将其转换为一个NumPy数组。例如,下面的代码演示了如何读取一个名为data.npy的二进制文件:

pythonCopy Code
import numpy as np # 读取二进制文件 data = np.load('data.npy') print(data)

使用save()写入二进制文件

save()函数可以将一个NumPy数组以NumPy格式保存到一个二进制文件中。例如,下面的代码演示了如何将一个名为data.npy的NumPy数组保存到一个二进制文件中:

pythonCopy Code
import numpy as np # 创建一个NumPy数组 data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 将数组写入二进制文件 np.save('data.npy', data)

执行上述代码后,会在当前工作目录下创建一个名为data.npy的二进制文件,并将NumPy数组中的数据保存到该文件中。

实例演示

下面的代码演示了如何使用NumPy库中的函数读写文本文件和二进制文件:

pythonCopy Code
import numpy as np # 读取文本文件 text_data = np.loadtxt('text_data.txt') print(text_data) # 将数组写入文本文件 np.savetxt('text_data_saved.txt', text_data) # 读取二进制文件 binary_data = np.load('binary_data.npy') print(binary_data) # 将数组写入二进制文件 np.save('binary_data_saved.npy', binary_data)

上述代码中,text_data.txt是一个纯文本文件,包含了一个NumPy数组;binary_data.npy是一个二进制数据文件,也包含了一个NumPy数组。代码首先使用loadtxt()函数和load()函数分别读取这两个文件中的数据,并将它们转换为NumPy数组。然后,代码又使用savetxt()函数和save()函数将这两个NumPy数组保存到两个新文件中。