[Numpy-discussion] workaround for searchsorted with strings?

Charles R Harris charlesr.harris at gmail.com
Thu May 22 14:38:17 EDT 2008


On Thu, May 22, 2008 at 12:29 PM, Lewis Hyatt <lhyatt at gmail.com> wrote:

> Hello-
>
> I see from this thread:
> http://article.gmane.org/gmane.comp.python.numeric.general/18746/
>
> that searchsorted does not work correctly with strings. Is there a
> workaround,
> though, that I can use with 1.0.4 until there is a new official numpy
> release
> that includes the fix mentioned in the reference above? Using the latest
> SVN
> version is not an option for me.
>
> My understanding was that searchsorted works OK if the strings are all the
> same
> data type, but that does not appear to be the case:
>
> p >>> x=array(['0', '1', '2', '12'])
> p >>> y=array(['0', '0', '2', '3', '123'])
> p >>> x.searchsorted(y)
>  array([0, 0, 0, 2, 0])
> p >>> x.astype(y.dtype).searchsorted(y)
>  array([0, 0, 2, 4, 2])
>
> I understand that the first call to searchsorted fails because y has type
> S3 and
> x  has type S2. But it seems that changing the type of x produces still
> incorrect (albeit) different results. Is there something similar I can do
> to
> make this work for now? Thanks very much.
>

The x array is not sorted. Try

x = array(['0', '1', '12', '2'])
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080522/8ef68e6c/attachment.html>


More information about the NumPy-Discussion mailing list