在机器学习领域,有时候想把模型运行过程中的重要信息(数组,dnarray类型的)存到一个文档里。方便下次读取。
下面介绍三种:
1. 存成2进制数
numpy提供了接口save和load。使用方法如下:
import numpy as np
a = np.array([1])
np.save("test00000001",arr=a)
以上存入,下面读取:
import numpy as np
data = np.load('test00000001.npy')
这种方法适合python程序之间的通信,读写速度极快。
生成的是.npy格式(NumPy )的二进制文件。用记事本打开是乱码,所以只适合python中numpy打开。
2. 存成.csv格式
使用np.savetxt和np.loadtxt模块。
import numpy as np
a = np.array([1,2,3])
np.savetxt('test000002.csv', a, delimiter=',')
以上存入,下面读取:
import numpy as np
data = np.loadtxt('test000002.csv', delimiter=',')
需要注意的是,这种方法需要指定分隔符(一般都是,逗号)
文件以csv形式存储,可以用记事本和excel打开查看。
3. 超大型数据存储—.npz形式文件
有的数据体量几十个G,不方便和别人通信。npz可以将其压缩到几百兆,方便通讯。
用法如下:
import numpy as np
a = np.array([1,2,3])
np.savez_compressed('test00003.npz', a)
读取:
import numpy as np
data = np.load('test00003.npz')
print(data['arr_0'])
print(type(data), type(data['arr_0']))
注意:读取上来的是一个类似压缩包的东西,需要通过内置的索引将压缩的数据取出。
以下是完整的数据结构,看似很复杂,但如果只是读取的话,记住基本命令即可。
储存形式如下:
记事本打开会乱码。
json简记
json文件一般用于存取结构化数据,常用于字典类型数据存取:
写:
import json
name = ['A', 'B', 'C']
num = [1, 2, 3]
a_dict = dict(zip(name, num))
a_dict_json = json.dumps(a_dict)
with open('test0004.json', 'w') as file:
file.write(a_dict_json)
读:
import json
with open('test0004.json', 'r') as file:
data_raw = file.read()
data = json.loads(data_raw)
print(data_raw)
print(data)
print(type(data_raw), type(data))