一、读取文件
读取.npy,.npz格式数据
file=r""
data_array=np.load(file)
读取.txt文件
file=r""
data_array=np.loadtxt(file)
有时候我们的txt文件第一行中可能有关于每一列的列名,是字符串格式,使用numpy读取时需要跳过这一行。例如下面的文件,
直接读取会提示
ValueError: could not convert string to float: 'x'
可以使用comment参数指定注释行,numpy会跳过改行。
In [11]: data_array=np.loadtxt(file,comments="x")
In [12]: data_array
Out[12]:
array([[ 11., 21., 18., 255., 0., 255., 1.],
[ 19., 93., 90., 128., 0., 128., 1.]])
二、写文件
保存.npy、.npz格式数据
np.savetxt()
保存txt格式数据
np.savetxt()
例如下面的数组使用numpy保存成txt,
In [1]: import numpy as np
In [2]: a=np.array([[1.112320,240.001234,1.431897],[9.01234,2.0896543,4.0986135]])
In [3]: print(a)
[[ 1.11232 240.001234 1.431897 ]
[ 9.01234 2.0896543 4.0986135]]
In [4]: out_file=r"C:\Users\123\Desktop\out.txt"
In [5]: np.savetxt(out_file,a)
可以发现文件里的数据是以科学计数法保存的,如果想设置保留小数位,可以按下面的方式设置,
In [7]: np.set_printoptions(suppress=True)
In [8]: np.set_printoptions(precision=6)
In [9]: np.savetxt(out_file,a,fmt="%.06f %.04f %.02f")
supress=True,表示不用科学计数法,precision表示小数点位置,fmt用来指定每一列的保存格式,如果格式一致,可以只写一个格式,如fmt="%.06f"。