我有一个代码,它使用np.savetxt来保存其中包含浮点数和字符串的数组。但是当我保存它们时,它们只能保存到3位有效数字。当我打印z
时,它会给我完整的花车,所以当我保存它时,问题就出现了。是什么导致了这个?例如z[0]=(55798.879999999997, 14.08, 'NAN')
,但当我读到文件时,它会显示557 14. NAN
time=[]
Um=[]
Bm=[]
for j in range(len(h)):
ee=np.where(h[j]==U[0])
if len(U[0][ee[0]])!=0:
time.append(np.mean(U[0][ee[0]].astype(np.float)))
Um.append(np.mean(U[1][ee[0]].astype(np.float)))
Bm.append('NAN')
#print 'U=',U[0][ee[0]],U[1][ee[0]]
gg=np.where(h[j]==B[0])
if len(B[0][gg[0]])!=0:
time.append(np.mean(B[0][gg[0]].astype(np.float)))
#print 'B=',B[0][gg[0]],B[1][gg[0]]
Um.append('NAN')
Bm.append(np.mean(B[1][gg[0]].astype(np.float)))
z=zip(time,U,B)
np.savetxt('file.txt',z,fmt='%.4s')
答案 0 :(得分:0)
iex(17)> TwoPs.create_ps
Received World
Received Bob
"Hello Bob"
使用类似
savetxt
其中 f.write(fmt % tuple(row))
来自您的输入参数。在您的示例中,我希望fmt
类似于
fmt
如果相反In [179]: '%.3s %.3s %.3s'%(55798.879999999997, 14.08, 'NAN')
Out[179]: '557 14. NAN'
包含适用于您的浮动广告的格式:
fmt
阅读In [174]: '%f, %f, %s'%(55798.879999999997, 14.08, 'NAN')
Out[174]: '55798.880000, 14.080000, NAN'
In [175]: np.save('file.txt', z, fmt='%f, %f, %s')
文档,了解有关格式化的更多信息。