Python 如何得到数字的实部?

Python 如何得到数字的实部?,python,numpy,sympy,Python,Numpy,Sympy,我在多项式上使用根,需要将根与0进行比较。当我使用根时,代码以无效的比较方法中断。我查看了cmath库,但没有realmyvariable方法 一般来说,rez是指如何在symphy中取复数的实部。但这里还有其他问题 根返回一个字典,其中的值对多重性进行编码。您的代码忽略多重性,只需添加1。最好使用这些值,或者使用根的multiple=True标志,使其返回一个列表,并重复使用多个根。 根将只返回可在根中表达的根。对于阶数高达4的多项式,这些都是它们的全部,但对于阶数更高的多项式,可能会缺少部分

我在多项式上使用根,需要将根与0进行比较。当我使用根时,代码以无效的比较方法中断。我查看了cmath库,但没有realmyvariable方法

一般来说,rez是指如何在symphy中取复数的实部。但这里还有其他问题

根返回一个字典,其中的值对多重性进行编码。您的代码忽略多重性,只需添加1。最好使用这些值,或者使用根的multiple=True标志,使其返回一个列表,并重复使用多个根。 根将只返回可在根中表达的根。对于阶数高达4的多项式,这些都是它们的全部,但对于阶数更高的多项式,可能会缺少部分或全部根。rootof函数适用于这些情况:它将根的索引作为第二个参数。 因此,我举两个例子。首先,使用带有多个标志的根,因此它返回一个列表而不是dict:

z = symbols('z')
p = Poly([3, 4, 5, 2], z)
rts = roots(p, multiple=True)
print([re(val) for val in rts])
这些值可以与0进行比较

第二,高次多项式:我们不再期望根在根中

z = symbols('z')
p = Poly([3, 4, 5, 2, 7, 5, 9], z)
for k in range(degree(p)):
    print(re(rootof(p, k).n()))
输出:

-1.05474041145861
-1.05474041145861
-0.364466197630592
-0.364466197630592
0.752539942422535
0.752539942422535

这是有意义的,因为具有实系数的多项式的复数根是共轭对。

它不是函数,而是对象的字段或属性。尝试a=5+3j,printa.real.val没有名为real的属性。自动完成程序看不到它。根是什么?我怎样才能得到它?什么是self.b?我用的是sympy图书馆的词根,你应该在问题中提到你的背景,提供一个答案。在这种情况下,我被误导了,以为您使用的是maybe numpy.roots。在这种情况下,我不再需要符号。它可以是一个系数的直接数字数组,我想将根与0进行比较。我使用Symphy表示根,因为我在该库中找到了方法,并假设这是正确的方法。好的,那么第二个代码示例就是您想要的。rootof在哪个库中?与roots相同,
-1.05474041145861
-1.05474041145861
-0.364466197630592
-0.364466197630592
0.752539942422535
0.752539942422535