Christopher Barker wrote:
Nadav Horesh wrote:
np.equal(a,a).sum(0)
but, for unknown reason, np.equal operates only on "normal" arrays.
true:
In [25]: a Out[25]: array(['abc', 'def', 'abc', 'ghij'], dtype='|S4')
In [27]: np.equal(a,a) Out[27]: NotImplemented
however:
In [28]: a == a Out[28]: array([ True, True, True, True], dtype=bool)
don't they use the same code? or is "==" reverting to plain old generic python sequence comparison, which would partly explain why it is so slow.
It looks as if "a == a" (that is array_richcompare) is triggering special case code for strings, so it is fast. However, IMHO np.equal should be made to work as well. Can you file a bug and assign it to me (I'm dealing with a number of other string-related things, so I might as well take this too). Mike -- Michael Droettboom Science Software Branch Operations and Engineering Division Space Telescope Science Institute Operated by AURA for NASA