NumPy IO学习笔记
NumPy是Python中常用的一个科学计算库。在NumPy库中,提供了多种数据读写的方法,使得我们可以方便地读写各种类型的数据文件,如文本文件、二进制文件等。本文将介绍NumPy库中各种数据读写方法的使用,以及一些实例演示。
读写文本文件
NumPy中提供了许多读写文本文件的函数,包括:
loadtxt()
:读取纯文本文件中的数据。savetxt()
:将数组保存到纯文本文件中。genfromtxt()
:灵活读取文本文件中的数据,并自动处理缺失值。
使用loadtxt()读取文本文件
loadtxt()
函数可以读取纯文本文件中的数据,并将其转换为一个NumPy数组。例如,下面的代码演示了如何读取一个名为data.txt
的文本文件:
pythonCopy Codeimport numpy as np
# 读取文本文件
data = np.loadtxt('data.txt')
print(data)
该文本文件的内容如下:
Copy Code1,2,3
4,5,6
7,8,9
上述代码执行的输出结果是:
Copy Codearray([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
使用savetxt()写入文本文件
savetxt()
函数可以将一个NumPy数组保存到一个纯文本文件中。例如,下面的代码演示了如何将一个名为data.txt
的NumPy数组写入一个文本文件中:
pythonCopy Codeimport 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 Codeimport numpy as np
# 读取带有缺失值的文本文件
data = np.genfromtxt('data.txt', delimiter=',')
print(data)
该文本文件的内容如下:
Copy Code1,-999,3
4,5,-999
7,8,9
上述代码执行的输出结果是:
Copy Codearray([[ 1., nan, 3.],
[ 4., 5., nan],
[ 7., 8., 9.]])
读写二进制文件
除了读写文本文件外,NumPy库还提供了读写二进制文件的函数,包括:
load()
:读取以NumPy格式保存的二进制数据文件。save()
:将数组以NumPy格式保存到二进制数据文件中。
使用load()读取二进制文件
load()
函数可以读取以NumPy格式保存的二进制数据文件,并将其转换为一个NumPy数组。例如,下面的代码演示了如何读取一个名为data.npy
的二进制文件:
pythonCopy Codeimport numpy as np
# 读取二进制文件
data = np.load('data.npy')
print(data)
使用save()写入二进制文件
save()
函数可以将一个NumPy数组以NumPy格式保存到一个二进制文件中。例如,下面的代码演示了如何将一个名为data.npy
的NumPy数组保存到一个二进制文件中:
pythonCopy Codeimport 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 Codeimport 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数组保存到两个新文件中。