Как я могу выбрать только реальные числа из массива? (Python 3)
Я хочу найти вертикальную асимптоту для:
f = (3x ^ 3 + 17x ^ 2 + 6x + 1) / (2x^3 - x + 3)
Итак, я хочу найти корни для (2x^3 - x + 3), поэтому я написал:
import sympy as sy
x = sy.Symbol('x', real=True)
asym1 = sy.solve(2*x**3-x+3,x)
for i in range(len(asym1)):
asym1[i] = asym1[i].evalf()
print(asym1)
Выход был:
[0.644811950742531 + 0.864492542166306*I, 0.644811950742531 -
0.864492542166306*I, -1.28962390148506]
Так что сейчас единственное число, которое имеет смысл в выводе - это -1,289, а комплексные числа не имеют никакого значения.
У меня вопрос: как я могу выбрать только действительные числа, так что вывод говорит:
asym1 = -1.28962390148506
2 ответа
Решение
Комплексные числа являются примерами complex
класс в то время как реальные цифры float
s:
asym1 = [x for x in asym1 if isinstance(x, float)]