python - 如何只从数组中选择实数? ( python 3)

标签 python arrays sympy complex-numbers real-number

我想找到垂直渐近线:

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

最佳答案

你可以这样做:

asym1 = [n for n in asym1 if n.is_real][0]    

关于python - 如何只从数组中选择实数? ( python 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51574700/

相关文章:

python - 执行错误 : The variable display is not defined. (-2753)

python - 激活virtualenv时如何不显示路径

java - 从数组中删除重复字符

java - 如何在不使用java.nio的情况下将字节数组转换为long?

python - 为什么 SymPy 1.1.1 在计算这个基本积分时返回错误?

python脚本卡在带有多处理代码的导入模块上

python - 如何获得Python算法的数学方程式?

javascript - 将 PHP 对象转换为数组

python - 如何在给定的区间内使用牛顿法

latex - 将 LaTeX 方程转换为 SymPy [Julia] 格式