【工程实践】np.savetxt()存储数据
前言
使用np.savetxt()方法可以将数据保存为txt文件或者是csv文件。
1 np.savetxt()存储txt文件
1-1 基础参数
numpy.savetxt(
fname,
arrry,
fmt='%.18e',
delimiter=' ',
newline='n',
header='',
footer='',
comments='# ',
encoding=None,
)
1-2 参数详解
fname:要存入的文件、文件名、或生成器。
arrry:要存储的数据。
fmt:要存储的数据格式。
delimiter:加载分隔符,默认是空格。
newline:行分隔符,默认换行符。
header:开头字符串(存储为csv文件时可以生成标题)。
footer:结尾字符串。
comments:文中的注释。
encoding:编码,默认无。
1-3 应用示例
原始数据如下所示:
1-3-1 fname
fname可以是文件的路径也可以是要转换存储的文件。
np.savetxt('./data1.txt',data)
未指定存储格式,会默认使用科学计数法进行存储,存储后的文件格式如下:
1-3-2 fmt
mt:要存储的数据格式。可以自行设置。“%d”表示设置为int型,“%s”表示为字符型,“%f”表示保留几位小数。
#保存为整数
np.savetxt('./data1.txt',data,fmt="%d")
#保存为字符串
np.savetxt('./data1.txt',data,fmt="%s")
#保留3位小数
np.savetxt('./data1.txt',data,fmt="%.2f")
每列都可以通过fmt单独设置输出的精度,注意的是要fmt指定的列数要与data保持一致,否则会报错
np.savetxt('./data1.txt',data,fmt="%.1f,%.2f,%.3f,%.4f,%.d,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,",delimiter=',')
1-3-3 delimiter
delimiter:加载分隔符,默认是空格。
#使用,作为分隔符
np.savetxt('./data1.txt',data,fmt="%.2f",delimiter=',')
1-3-4 newline
newline:行分隔符,默认换行符。
np.savetxt('./data1.txt',data,fmt="%.2f",delimiter=',',newline='')
1-3-5 header
header:开头字符串(存储为csv文件时可以生成标题)。如果每一列都要加上标题的话,可以使用指定的分隔符分开。如果不加分隔符,那就默认的加上一列。
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',header ='The Header')
使用分隔符分开,给每一列都添加上标题。
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',header ='first,second,trid' )
1-3-6 footer
footer:结尾字符串。
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',header ='The Header',footer='The Footer')
1-3-7 comments
comments:文中的注释。与header配合使用,在实验时如果未设置header参数,即使设置了comments参数也无效。
#header = ''
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',header = '',comments='First')
#不设置header
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',comments='First')
#header = 'The header'
np.savetxt('./data1.txt',data,fmt="%d,",delimiter='',header = 'The header',comments='First')
2 np.savetxt()存储csv文件
2-1 示例
把header作为生成的csv文件的title
np.savetxt('./data1.csv',data,fmt="%d,",delimiter='',header = 'First,Second,Third')
在读取时,key即为设置的header,在第一个key中会携带特殊符号#。