【发布时间】:2016-05-09 01:01:25
【问题描述】:
我有一个代码,它使用 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')
【问题讨论】:
-
请提供numpy变量的dtype。
-
U.dtype=|S8, B.dtype=|S10
-
我无法让它与 np.savetxt 一起使用,但我只使用了 file.write
-
好的,如果这解决了问题,我应该调查一下。如果是这样,您能否提供 U、B 和 h 的示例数据。
-
用
fmt进行实验。想象一下你正在写fmt%tuple(z[0,:])- 格式化一行z。