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. > maybe you can transform the array to arrays of numbers, for example by hash. or even easier: In [32]: a2 = a.view(dtype=np.int32) In [33]: a2 Out[33]: array([1633837824, 1684366848, 1633837824, 1734895978]) In [34]: np.equal(a2, a2[0]) Out[34]: array([ True, False, True, False], dtype=bool) though that only works if your strings are a handy length like 4 bytes... -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception chris.bar...@noaa.gov _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion