NumPy 是一个强大的 Python 数值计算库,广泛用于科学计算和数据分析。在 NumPy 中,除了数组的创建和操作,还有一个非常重要的功能就是文件读写。这使得我们可以方便地将数据存储到磁盘上,也可以从磁盘读入数据进行处理。
文件读写的基本概念
NumPy 提供了几个功能强大的函数来处理文件读写,最常用的是 numpy.loadtxt()
和 numpy.savetxt()
。前者用于从文本文件中加载数据,后者则用于将数组保存为文本文件。此外,NumPy 还支持读取和写入二进制格式,可以使用 numpy.save()
和 numpy.load()
来实现。
文本文件的读写
首先,我们来看如何将 NumPy 数组保存到文本文件中。我们将使用 numpy.savetxt()
函数。
import numpy as np
# 创建一个 NumPy 数组
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 将数组保存到文本文件
np.savetxt('data.txt', data, delimiter=',', header='Column1,Column2,Column3', comments='')
print("数据已保存到 data.txt 文件中。")
在上面的代码中,我们创建了一个 3x3 的 NumPy 数组,并使用 np.savetxt()
函数将其保存到名为 data.txt
的文件中。参数 delimiter=','
表示数据之间以逗号分隔,header
参数添加了列的名称,而 comments=''
则表示不在头部添加注释符号。
接下来,我们来看如何从文本文件中加载数据,这里我们将使用 numpy.loadtxt()
函数。
# 从文本文件加载数据
loaded_data = np.loadtxt('data.txt', delimiter=',', skiprows=1)
print("从文件加载的数据:")
print(loaded_data)
在这个例子中,我们使用 np.loadtxt()
函数从 data.txt
中读取数据。skiprows=1
参数用于跳过文件的第一行(即列标题),只加载数据部分。
二进制文件的读写
除了文本文件,NumPy 也支持二进制文件的读写。二进制文件的读写速度更快,且更节省存储空间,适合大数据量的场景。我们使用 numpy.save()
和 numpy.load()
来进行操作。
# 保存数组到二进制文件
np.save('data_binary.npy', data)
print("数据已保存到 data_binary.npy 文件中。")
在上述代码中,我们使用 np.save()
函数将数组保存到了名为 data_binary.npy
的二进制文件中。这里的 .npy
后缀是 NumPy 用于标识其二进制文件的标准。
接下去,我们来看如何从二进制文件中加载数据。
# 从二进制文件加载数据
loaded_binary_data = np.load('data_binary.npy')
print("从二进制文件加载的数据:")
print(loaded_binary_data)
总结
通过本文,我们介绍了 NumPy 中文件读写的基础知识。NumPy 提供了简单而又高效的文件读写方法,包括文本和二进制格式。文本格式便于人类阅读,适合于小型数据集的存储与共享,而二进制格式则更高效,特别适合处理大规模数据。无论是数据的保存还是加载,NumPy 都为科学计算提供了强大的支持。希望通过这个简单的介绍,能够帮助你更好地使用 NumPy 进行数据处理与分析。