[英]numpy savetxt only saving to 3 significant figures
我有一个代码使用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')
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')
阅读savetxt
文档以获取有关格式的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.