2013-07-15 122 views
1

我正在使用python,我很新,可以用一些指導來處理我認爲是字符串格式問題。字符串格式化,用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模塊,也不確定如何使用它來提取正確的格式。

任何幫助將apprieciated

+0

請添加您的代碼。 –

回答

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) 
3

您可以在Python解析複雜的數字是這樣的:

>>> c=complex('-1.040e-05+3.1676e-03j') 
>>> c.real 
-1.04e-05 
>>> c.imag 
0.0031676 
>>> 

它與浮點和整數的數字,太:

>>> f=complex('100.01') 
>>> f.real 
100.01 
>>> f.imag 
0.0 
>>> 
+0

多數民衆贊成在完美!謝謝 –

+0

@CalumHill我很高興能幫上忙。如果您對此感到滿意,您能否請您將答案標記爲正確? – piokuc

+0

哦,我只是注意到你標記了另一個答案 - 沒關係。 – piokuc

相關問題