Hi, On Tue, Sep 21, 2010 at 2:44 PM, Benjamin Root <ben.r...@ou.edu> wrote: > On Tue, Sep 21, 2010 at 4:31 PM, Michael Gilbert > <michael.s.gilb...@gmail.com> wrote: >> >> Hi, >> >> 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 looks like there was a decision to let 'real' and 'imag' pass quietly for non-numerical types: In [2]: a = np.array('hello', dtype=object) In [3]: a.real Out[3]: array('hello', dtype=object) In [4]: a.imag Out[4]: array(0, dtype=object) and In [6]: a = np.array('hello', dtype='S5') In [7]: a.real Out[7]: array('hello', dtype='|S5') In [8]: a.imag Out[8]: array('', dtype='|S5') I can see that that could be confusing. I suppose the alternative would be to raise an error for real and imag for non-numerical types at least. Best, Matthew _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion