我正在使用python,我很新手,可以使用我认为是字符串格式化问题的一些指导。
我有一个外部程序的输出,我想“翻译”成浮点数。输出包含两个数字,可能是也可能不是科学记数法,小数点后最多可以有15位数字(我在这里省略了)。
( - 1.040e-05 + 3.1676e-03j) 我希望这成为两个单独的数字 -0.00001040,0.0031676
目前无用形式的输出数据的其他示例如下 (0.0572636-0.419420j)将变为0.0572636,-0.419420 (0.000194 + 4.85091e-05j)
我的目标是取每对括号中包含的两个数字,将它们对齐并将它们加在一起。如果结果是科学记数法中的两个数字那么这很好,只要我能够对它们执行数学运算。此外,减号不需要在转换中存活,因为无论如何我都会消失它。如果这让事情变得更容易。
我目前采取的方法是一种相当复杂和混乱的方法。使用x.find找到'e',' - '和'+',然后解释应该提取字符串的哪些部分以形成数字。
我也不熟悉re模块,也不确定如何使用它来提取正确的格式。
任何帮助都会受到谴责
答案 0 :(得分:3)
您可以像这样解析Python中的复数:
>>> c=complex('-1.040e-05+3.1676e-03j')
>>> c.real
-1.04e-05
>>> c.imag
0.0031676
>>>
它也适用于float和整数:
>>> f=complex('100.01')
>>> f.real
100.01
>>> f.imag
0.0
>>>
答案 1 :(得分:1)
您还可以使用优秀的numpy
包:
import numpy as np
i = np.array(-1.040e-05+3.1676e-03j)
i.real
>> array(-1.04e-05)
i.imag
>> array(0.0031676)