[Numpy-discussion] Comparing arrays with dtypes with field names
Albert Strasheim
fullung at gmail.com
Thu Jul 6 04:08:36 EDT 2006
Hello all
I noticed that arrays with dtypes with field names don't compare correctly
when using the equality operator.
Example:
In [17]: dt = N.dtype({'names' : ['f1', 'f2'],
'formats' : [N.intc, N.intc]})
In [18]: x = N.array([(0,0)], dtype=dt)
In [19]: y = N.array([(0,0)], dtype=dt)
In [20]: x['f1']==y['f1']
Out[20]: array([True], dtype=bool)
In [21]: x['f2']==y['f2']
Out[21]: array([True], dtype=bool)
In [22]: x==y
Out[22]: False
The question arises as to what should be returned when comparing these
arrays. One option would be an array with dtype=bool which would indicate
that each item in the array is equal in f1 and f2. Another option would be
an array with dtype
N.dtype({'names' : ['f1', 'f2'], 'formats' : [bool,bool]})
I think this second option could be very useful for some applications, where
you might want to know something like: is the (i,j)th element of this array
the same in f1 and f2 but different in f3?
Any thoughts?
Regards,
Albert
More information about the NumPy-Discussion
mailing list