繁体   English   中英

numpy savetxt仅保存到3个有效数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM