[Numpy-discussion] real and imag functions should produce errors for object arrays

Robert Kern robert.kern at gmail.com
Tue Sep 21 18:28:08 EDT 2010


On Tue, Sep 21, 2010 at 17:17, Pauli Virtanen <pav at iki.fi> wrote:
> Tue, 21 Sep 2010 21:50:08 +0000, Pauli Virtanen wrote:
>
>> Tue, 21 Sep 2010 17:31:55 -0400, Michael Gilbert wrote:
>>> The following example demonstrates a rather unexpected result:
>>>
>>>>>> import numpy
>>>>>> x = numpy.array( complex( 1.0 , 1.0 ) , numpy.object )
>>> print x.real
>>> (1+1j)
>>>>>> print x.imag
>>> 0
>>>
>>> Shouldn't real and imag return an error in such a situation?
>>
>> It probably shouldn't do *that* at the least.
>
> *that* == return a complex number from .real

What is the alternative? I'm personally happy with saying that many of
the operations we define on numpy arrays can be done because we know
the types and that object arrays subvert this. numpy can't, without
excessive amounts of magic, always know a sensible thing to do with
object arrays, so we implement the fast thing to do.

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