[Numpy-discussion] making two 2D real arrays into one complex array

Robert Kern robert.kern at gmail.com
Tue Apr 10 16:09:00 EDT 2007


mark wrote:
> Hello List -
> 
> Any reason why the following doesn't work?
> 
>>>> x,y = meshgrid(linspace(-1,1,10),linspace(-1,1,10))
>>>> z = complex(x,y)
> Traceback (most recent call last):
>   File "<pyshell#225>", line 1, in ?
>     z = complex(x,y)
> TypeError: only length-1 arrays can be converted to Python scalars
> 
> 
> I know I can make an empty complex z array with the size of x, then
> set z.real equal to x and z.imag equal to y. But is there any reason
> why the above shouldn't work?

Yes. complex() is a builtin function for Python. It only takes Python ints and
floats. It knows nothing about numpy.

> It would be easy to implement in numpy,
> wouldn't it? If so, I would *really* like it.

I don't think there's much need for it to be provided in numpy. It's trivial
enough that you can define it yourself wherever you need it.

def complexarray(x, y):
    return x + 1j*y

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco



More information about the NumPy-Discussion mailing list