

Numpy中除了能够把数据以二进制文件的方式保存到文件中以外,还可以选择把数据保存到文本文件中。如果我有磁盘存储的需要,我一般会选择文本的存储,因为后期的处理工具会有更多的选择。
文本存储数据文件可以采用savetxt的功能,而相应文件的加载可以采用loadtxt的功能。与二进制存储不同,savetxt的功能不会自动追加扩展名。
接下来做简单的操作练习示范:
In [15]: arr1 =rand(5,4)
In [16]: arr1
Out[16]:
array([[0.21349492, 0.77993282, 0.37269246, 0.70599725],
[ 0.74004045, 0.697716, 0.494394, 0.94005934],
[ 0.902693, 0.43021685, 0.29623512, 0.4259565 ],
[ 0.00146385, 0.76194 , 0.27662 , 0.006728],
[ 0.17746182, 0.81107356, 0.13140944, 0.12808611]])
In [17]:np.savetxt('data.txt',arr1)通过以上操作,数组的信息被存储到了data.txt文件中。可以通过其他的文本编辑器或者其他处理工具进行编辑修改。以文本形式对文件直接进行查看结果如下:
C:UsersThinkPadDesktop>typedata.txt 2.134949194782667092e-017.799328187516920696e-01 3.7269245505938051e-01 7.0599725318468658e-01 7.4004044744958754e-016.469771552354630639e-01 4.9439386825553788e-01 9.400593405075502451e-01 8.990269288143762916e-014.302168497691762905e-01 2.962351210526772416e-01 4.2595974067475696e-01 1.4638500000737916e-037.6194016912527171e-01 2.7661957409741966e-01 8.967282719944846825e-03 1.7746182473144817e-018.110735600283927038e-01 1.3140944180123481e-01 1.280861102265743456e-01
文件的加载:
In [22]: new_arr =np.loadtxt('data.txt')
In [23]: new_arr
Out[23]:
array([[0.21349492, 0.77993282, 0.37269246, 0.70599725],
[ 0.74004045, 0.697716, 0.494394, 0.94005934],
[ 0.902693, 0.43021685, 0.29623512, 0.4259565 ],
[ 0.00146385, 0.76194 , 0.27662 , 0.006728],
[ 0.17746182, 0.81107356, 0.13140944, 0.12808611]])存储的数据文件可以通过加载的方式重新用以创建数组对象,为了验证存储与读取的一致性,做一下检查如下:
In [25]: arr1 ==new_arr Out[25]: array([[True, True, True, True], [ True, True, True, True], [ True, True, True, True], [ True, True, True, True], [ True, True, True, True]], dtype=bool)
从上面可以看出,读取回来的数据跟原来有着等价效果。
