Search code examples
pythontypescomplex-numbers

Complex numbers in python


Are complex numbers a supported data-type in Python? If so, how do you use them?


Solution

  • In python, you can put ‘j’ or ‘J’ after a number to make it imaginary, so you can write complex literals easily:

    >>> 1j
    1j
    >>> 1J
    1j
    >>> 1j * 1j
    (-1+0j)
    

    The ‘j’ suffix comes from electrical engineering, where the variable ‘i’ is usually used for current. (Reasoning found here.)

    The type of a complex number is complex, and you can use the type as a constructor if you prefer:

    >>> complex(2,3)
    (2+3j)
    

    A complex number has some built-in accessors:

    >>> z = 2+3j
    >>> z.real
    2.0
    >>> z.imag
    3.0
    >>> z.conjugate()
    (2-3j)
    

    Several built-in functions support complex numbers:

    >>> abs(3 + 4j)
    5.0
    >>> pow(3 + 4j, 2)
    (-7+24j)
    

    The standard module cmath has more functions that handle complex numbers:

    >>> import cmath
    >>> cmath.sin(2 + 3j)
    (9.15449914691143-4.168906959966565j)