On Fri, Oct 24, 2008 at 4:23 PM, Mathew Yeates <[EMAIL PROTECTED]> wrote:

> hmmmm. I don't understand the result.
>
> If
> a=array([ 1,  2,  3,  7, 10]) and b=array([ 1,  2,  3,  8, 10])
>
> I want to get the result [0,1,2,4] but[searchsorted(a,b) produces
> [0,1,2,4,4] ?? and searchsorted(b,a) produces [0,1,2,3,4]
>

Because b isn't a subset of a. You can get around this by counting the
number, i.e.,

cnt = searchsorted(a,b, side='right') - seachsorted(a, b, side='left')

so that

In [1]: a = array([ 1,  2,  3,  7, 10])

In [2]: b = array([ 1,  2,  3,  8, 10])

In [3]: il = searchsorted(a, b, side='left')

In [4]: ir = searchsorted(a, b, side='right')

In [5]: compress(ir - il, il)
Out[5]: array([0, 1, 2, 4])

Chuck
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to