在我们使用numpy处理了数据之后,可以将数组保存为保存为Numpy专用的二进制格式,当我们这样操作之后,就不能用notepad++等打开看了(乱码)。
np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
ar = np.random.rand(5,5)
print(ar)
np.save('arraydata.npy', ar)
ar_load =np.load('arraydata.npy')
print(ar_load)
除了保存为npy文件外,我们还可以将数据保存为txt格式的文本文件,np可以读写1维和2维的数组同时可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。
这里需要注意的是关于文件保存的默认分隔符是空格,缺省按照'%.18e'格式保存数据。
ar = np.random.rand(5,5)
np.savetxt('array.txt',ar, delimiter=',')
# 改为以整数形式保存
np.savetxt("a.txt",a,fmt="%d",delimiter=",")
# np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# '):存储为文本txt文件
同样这里要注意的是读取也要标注分隔符的值,如果与保存时不同会报错。
ar_loadtxt = np.loadtxt('array.txt', delimiter=',')
print(ar_loadtxt)
>>>
[[ 0.28280684 0.66188985 0.00372083 0.54051044 0.68553963]
[ 0.9138449 0.37056825 0.62813711 0.83032184 0.70196173]
[ 0.63438739 0.86552157 0.68294764 0.2959724 0.62337767]
[ 0.67411154 0.87678919 0.53732168 0.90366896 0.70480366]
[ 0.00936579 0.32914898 0.30001813 0.66198967 0.04336824]]