* I在python中的数字旁边是什么意思?

时间:2018-10-10 08:10:11

标签: python precision

enter image description here

这些数字来自计算反正弦,我猜* I与python中的浮点精度有关。但是找不到任何地方的确切含义。

还可以直接保留第一个数字(即在-号之前)吗?我的意思是不将其处理为字符串,而是直接调用方法。

2 个答案:

答案 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

这也适用于intfloat等,因为并非总是可能预先知道计算结果的类型。

以类似的方式,您可以获得虚构部分的值:

>>> (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.]])