答案 0 :(得分:1)
只需使用复数的real
属性来隔离实部。
>>> c = 1.57+1.60j
>>> c.real
1.57
python中文字虚数的语法是使用后缀j
。
答案 1 :(得分:1)
这些数字来自计算反正弦,我猜* I与python中的浮点精度有关。但是找不到任何地方的确切含义。
否,它们是complex numbers [wiki]。复数包含具有负的平方根的成分(从数学上来说,这有点“过分简化的解释”,因此,如果您对更正式的定义感兴趣,我建议您参阅Wikipedia文章) 。这个√(-1)在数学上用 i (有时是 j )表示。
在Python本身中,数字用j
表示,例如:
>>> 3+3j
(3+3j)
有一个简单的方法就是保留第一个数字
是,但是问题是这是否是一个好主意。简单地忽略虚构部分通常不是一个好主意,因为 1 + 2i 与 1 等效。
但是,如果它是普通的Python复数,则可以使用.real
属性:
>>> (1+3j).real
1.0
这也适用于int
,float
等,因为并非总是可能预先知道计算结果的类型。
以类似的方式,您可以获得虚构部分的值:
>>> (1+3j).imag
3.0
在numpy
中,有类似的函数可以将复数数组转换为它们的 real 或虚构投影:
>>> arr
array([[ -5. -2.j, 8.+16.j, -16. +5.j, -4. +7.j],
[-19. +2.j, 1. +7.j, -1.-14.j, 10. +6.j],
[ 8. -8.j, -12. -1.j, 22. +7.j, -10.-11.j]])
>>> np.real(arr)
array([[ -5., 8., -16., -4.],
[-19., 1., -1., 10.],
[ 8., -12., 22., -10.]])