2013-07-15 3 views
1

Я использую python, который я довольно новичок и могу сделать с некоторыми указаниями с тем, что, по моему мнению, является проблемой форматирования строк.Форматирование строк, научная нотация для float в 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

thats безупречный! Спасибо –

+0

@CalumHill Я рад, что смогу помочь. Не могли бы вы отметить ответ правильно, если вы довольны этим? – piokuc

+0

О, я только заметил, что вы отметили другой ответ - все в порядке. – piokuc

Смежные вопросы