Stuart Brorson wrote: > I have to agree with Lorenzo. There is no natural ordering of the > complex numbers. Any way you order them is arbitrary. > > Accepting this, the question then becomes "what should NumPy do when > the user tries to do order comparison operations on complex numbers. > The problem is that NumPy is schizophrenic. Watch this: > > -------------------------- <session log> --------------------- > > In [20]: A = numpy.array([3+1j, 1+3j, -1-3j, -1+3j, -3-1j]) > > In [21]: B = A[numpy.random.permutation(5)] > > In [22]: > > In [22]: A > Out[22]: array([ 3.+1.j, 1.+3.j, -1.-3.j, -1.+3.j, -3.-1.j]) > > In [23]: B > Out[23]: array([-1.+3.j, 3.+1.j, -1.-3.j, 1.+3.j, -3.-1.j]) > > In [24]: numpy.greater(A, B) > Out[24]: array([ True, False, False, False, False], dtype=bool) > > In [25]: numpy.maximum(A, B) > Out[25]: array([ 3.+1.j, 3.+1.j, -1.-3.j, 1.+3.j, -3.-1.j]) > > In [26]: > > In [26]: 3+1j > -1+3j > --------------------------------------------------------------------------- > <type 'exceptions.TypeError'> Traceback (most recent call > last) > > /tmp/test/web/<ipython console> in <module>() > > <type 'exceptions.TypeError'>: no ordering relation is defined for > complex numbers > > ---------------------------- </session log> ----------------------
No, numpy is entirely consistent. In[26] has Python's complex numbers, not numpy's. In [1]: from numpy import complex64 In [2]: complex64(3+1j) > complex64(-1+3j) Out[2]: True -- 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 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion