带有科学记数法 EXY 的 python
Posted
技术标签:
【中文标题】带有科学记数法 EXY 的 python【英文标题】:python with scientific notation EXY 【发布时间】:2013-11-13 14:32:38 【问题描述】:所以我正在将数组的列写入文件,并且该文件将由对空间敏感的程序使用,因此它必须完全正确,如下所示:
*DEFINE_CURVE_TRIM
$ TCID TCTYPE TFLG TDIR TCTOL TOLN/IGB NSEED
1111 1 -1 0 0.001
7.50000E01 , 0.00000E00
7.49906E01 , 1.18995E00
7.49622E01 , 2.37960E00
我正在处理一些带有很多小数的浮点数,所以我将它们四舍五入以具有相同的小数位数,但 python 表示法是 E+01,它必须是 E01
udskrift = open('DEFINE_CURVE_TRIM_FULL','w')
udskrift.write('*DEFINE_CURVE_TRIM\n$ TCID TCTYPE TFLG TDIR TCTOL TOLN/IGB NSEED\n 1111 1 -1 0 0.001\n')
for entry in polar_koordinator:
udskrift.write(" %.5E , %.5E\n" % (entry[2], entry[3]))
输出是
*DEFINE_CURVE_TRIM
$ TCID TCTYPE TFLG TDIR TCTOL TOLN/IGB NSEED
1111 1 -1 0 0.001
8.00976E+01 , 0.00000E+00
8.01050E+01 , 1.25839E+00
那么关于如何删除“+”使其变为 E01 的任何指针?我不想不得不重新打开文件并删除它们
【问题讨论】:
你还会期待十的负幂的负号吗?例如1.23456E-13? 是的,实际上我并没有考虑太多,但是在查看原件时,我可以找到 E-01 的 2 个示例,所以猜测 LS-dyna 可以接受 【参考方案1】:一个简单的方法是写
udskrift.write((" %.5E , %.5E\n" % (entry[2], entry[3])).replace('E+', 'E'))
但这似乎并不像pythonic。
【讨论】:
如果我上面的问题的答案是肯定的,这将是我的建议。以上是关于带有科学记数法 EXY 的 python的主要内容,如果未能解决你的问题,请参考以下文章
以科学记数法将带有科学记数法的文本文件读取到 pandas 数据框