numpy中的文件读取与保存
import numpy as np
import pickle
读取
1.dst = numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding=‘ASCII’)
- file:文件名或者路径加文件名或者文件对象
- allow_pickle:为True时,可以从将pkl保存的文件读入,但是这样不好,一般默认为False
f = open("a", mode="rb")
a = np.load(f, allow_pickle=True)
a
{'age': 22, 'sex': 'male', 'height': 180}
x = np.load("q.npy")
x
array([1, 2, 3])
保存
numpy.save(file, arr, allow_pickle=True)
- file:可以是文件名或者路径名加文件名,或者是文件对象;如果没有给出文件的后缀,则默认保存为*.npy文件
- arr:要保存的数组
- allow_pickle:一般不管这个参数,最好不要混合使用两种数据
a = np.array([1, 2, 3])
np.save("q", a)
f = open("arr", mode="wb")
np.save(f, a)
numpy.savez(file, *args, **kwds)
- file:文件名或者路径加文件名,或者是文件对象;如果没有指定文件后缀,则默认保存为*.npz
- 可以传入多个数组对象,用逗号隔开就行
numpy.savez()会将保存的多个数组以字典形式保存,每个数组都会默认给一个key,从“arr_0”开始。也可以在传入多个数组时用关键字自己指定其key值。通过obj = np.load(npz文件)加载后,可以通过obj.files属性查看所有保存数组的key值,类似于dict.keys。并且可以通过key值索引保存的数组。
j = np.array([1, 5, 8])
k = np.array([11, 31, 9])
l = np.array([67, 40, 23])
np.savez("arr3", j, k, l)
arr3 = np.load("arr3.npz")
print(arr3.files)
print(arr3["arr_0"])
['arr_0', 'arr_1', 'arr_2']
[1 5 8]
np.savez("arr3_d", embed=j, ot=k, qq=l)
arr3_d = np.load("arr3_d.npz")
arr3_d.files
['embed', 'ot', 'qq']
|