【发布时间】:2014-06-04 00:04:21
【问题描述】:
我有一个表格,其中包含 5E-7、10E-4 等数字,但这些数字精确到小数点后几位,例如 5.646273838E-7。我知道我可以在 python 中使用 round 函数来设置精度,但由于我的所有数字都不同,我希望能够将每个数字四舍五入以说 2 d.p 但仍将指数保留在答案中。所以我想让 5.646273838E-7 变成 5.64E-7 和 2.38212538E-4 变成 2.38E-4。我试图使用一种方法,可以将我的数字转换为字符串,然后计算出字符串长度,因此对于 5.646273838E-7,如果字符串长度约为 17,我将舍入设置为 (17-2)*0.5 和它可以为我的数据范围完成工作。但是有人能提出更好的方法吗?
@user545424:嘿,这是一件非常有用的事情,知道并且做得很好,除了我的数据是从一个包含字符串和数字的文本文件中读取的。字符串是对象的名称,例如:
名称 Prop_1 Prop_2
object_1 5.343e-10 2.574e-10
然后我使用以下代码读取并显示为表格并保存为乳胶文件 numpy.set_printoptions(precision=2)
out=numpy.loadtxt('data.txt', dtype=str,usecols=(0,1,2,3))
col=zip(*out)
tab=Table(col)
tab.write('table',format='latex')
print(tab)
谢谢
【问题讨论】:
标签: python formatting