NumPy 对象可以保存到磁盘文件并从中加载。下面提到的是实现此目的的最常用函数:
函数 | 说明 |
---|---|
save() | 将数组保存为 NumPy .npy 格式的二进制文件。 |
load() | 从 .npy 文件加载数组。 |
savetxt() | 将数组保存到文本文件。 |
loadtxt() | 从文本文件加载数据。 |
让我们详细讨论这些函数:
numpy.save() 函数
NumPy save() 函数用于将数组保存为 NumPy .npy 格式的二进制文件。
语法
numpy.save(file, arr)
参数
file | 必填。 指定保存数据的文件或文件名。如果 file 是文件对象,则文件名不变。如果文件是字符串或路径,则将 .npy 扩展名附加到文件名(如果文件名尚无扩展名)。 |
arr | 必填。 指定要保存的数组数据。 |
numpy.load()函数
NumPy load() 函数用于从 .npy 文件加载数组。
语法
numpy.save(file, mmap_mode=None)
参数
file | 必填。 指定要读取的文件。类文件对象必须支持seek()和read()方法。 |
mmap_mode | 可选。 它可以从 中获取值。默认为"无"。如果不是"无",则使用给定模式对文件进行内存映射。内存映射数组保存在磁盘上。然而,它可以像任何 ndarray 一样被访问和切片。内存映射对于访问大文件的小片段而不将整个文件读入内存特别有用。 |
示例:
在在下面的示例中,数组 arr 被保存到一个名为 test.npy 的新二进制文件中。此外,load()函数用于从文件中加载保存的数组并打印它
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
#将arr保存在二进制文件中 - test.npy
np.save("test", arr)
#从test.npy加载数组
y = np.load("test.npy")
#显示y的内容
print(y)
上述代码的输出将是:
[10 20 30 40 50 60]
示例:
假设我们有一个名为 demo.npy 的文件。下面的示例描述了如何在其中保存 numpy 数组并从中加载保存的数组。
import numpy as np
#以写入模式打开文件
#保存numpy数组
MyFile = open("demo.npy", "wb")
np.save(MyFile, np.array([10, 20]))
np.save(MyFile, np.array([10, 30]))
MyFile.close()
#打开文件读取内容
MyFile = open("demo.npy", "rb")
x = np.load(MyFile)
y = np.load(MyFile)
MyFile.close()
#显示x和y的内容
print(x)
print(y)
上述代码的输出将是:
[10 20]
[10 30]
numpy.savetxt() 函数
NumPy savetxt() 函数用于将数组保存到文本文件。
语法
numpy.savetxt(fname, X)
参数
fname | 必填。 指定保存数据的文件名。如果文件名以 .gz 结尾,则文件会自动以压缩的 gzip 格式保存。 |
X | 必填。 指定要保存在文件中的数据(1D 或 2D array_like)。 |
numpy.loadtxt() 函数
NumPy loadtxt() 函数用于从文本文件加载数据。文本文件中的每一行必须具有相同数量的值。
语法
numpy.loadtxt(fname, dtype=<class 'float'>)
参数
fname | 必填。 指定要读取的文件、文件名或生成器。如果文件扩展名是.gz或.bz2,则首先解压缩该文件。请注意,生成器应返回字节字符串。 |
dtype | 可选。 指定结果数组的数据类型。默认值:float。 |
示例:
在下面的示例中,数组 arr 被保存到名为 test.out 的文本文件。此外,loadtxt()函数用于从文件中加载保存的数组并打印它。
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
#将arr保存在文本文件中 - test.out
np.savetxt("test.out", arr)
#从test.out加载数组
y = np.loadtxt("test.out")
#显示y的内容
print(y)
上述代码的输出将是:
[10. 20. 30. 40. 50. 60.]
示例:
下面的示例描述了如何在文件中保存多个 numpy 数组并从中加载保存的数组。请注意,每个数组必须具有相同数量的元素。
import numpy as np
x = y = z = np.arange(0.0,5.0,1.0)
np.savetxt("demo.txt", (x, y, z))
#从demo.txt加载数组
NewArr = np.loadtxt("demo.txt")
#显示结果
print(NewArr)
上述代码的输出将是:
[[0. 1. 2. 3. 4.]
[0. 1. 2. 3. 4.]
[0. 1. 2. 3. 4.]]