我怎样才能 select 只有数组中的实数? (Python 3)
How can I select only the real numbers from an array? (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,复数没有任何意义。
我的问题是:我怎样才能只 select 实数,所以输出显示:
asym1 = -1.28962390148506
你可以做到:
asym1 = [n for n in asym1 if n.is_real][0]
复数是 complex
class 的实例,而实数
是 float
s:
asym1 = [x for x in asym1 if isinstance(x, float)]
我想找到垂直渐近线:
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,复数没有任何意义。
我的问题是:我怎样才能只 select 实数,所以输出显示:
asym1 = -1.28962390148506
你可以做到:
asym1 = [n for n in asym1 if n.is_real][0]
复数是 complex
class 的实例,而实数
是 float
s:
asym1 = [x for x in asym1 if isinstance(x, float)]