首先要保证在你的python环境中装了numpy包,接下来我们要使用其中的两个函数用于存储和加载数组:np.savetxt()和np.loadtxt()。

二维数组的保存和读取

import numpy as np
a = np.ones((2, 2))
##四个参数依次为文件名、数组、数据类型(浮点型)、分隔符(逗号)
np.savetxt("a.txt", a, fmt = '%f', delimiter = ',')
b = np.loadtxt('a.txt', delimiter = ',')

这里也可以设置保存的路径,把相应路径加在a.txt前,例如:

np.savetxt("/home/Velocitymodel/speedfile/a.txt", a, fmt = '%f', delimiter = ',')

三维数组的保存和读取

这里重点讲一下如何将三维数组保存到txt文件,如果我们直接使用二维数组的方法这里就会报错,因为np.savetxt()和np.loadtxt()只能用于一维和二维数组。那么在这里我们使用循环将三维数组以二维切片的形式写如txt文件:

import numpy as np
b = np.ones((2,2,2))
with open('/home/Velocitymodel/speedfile/b.txt', 'w') as outfile:
    for slice_2d in b:
        np.savetxt(outfile, slice_2d, fmt = '%f', delimiter = ',')

这时我们就相当于保存了一个大的二维数组到txt文件,我们可以在读文件的使用使用reshape()函数将它恢复成三维数组:

c = np.loadtxt('/home/Velocitymodel/speedfile/b.txt', delimiter = ',').reshape((2, 2, 2))

这样我们将完成了三维数组的保存和读取。

np.savez()

numpy中还有一种方法可以直接保存三维数组,但是生成的文本格式为.npz形式,相比于txt其接口太少,这里也就不多做赘述,有兴趣的可以参考这篇博文。
python:保存N维数组(ndarray)到本地文件

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐