Maybe use searchsorted()? I will note that I have needed to do something like this once before, and I found that the list comprehension form of calling .index() for each item was faster than jumping through hoops to vectorize it using searchsorted (needing to sort and then map the sorted indices to the original indices), and was certainly clearer, but that might depend upon the problem size.
Cheers! Ben Root On Wed, Dec 30, 2015 at 10:02 AM, Andy Ray Terrel <andy.ter...@gmail.com> wrote: > Using pandas one can do: > > >>> A = np.array([2,0,1,4]) > >>> B = np.array([1,2,0]) > >>> s = pd.Series(range(len(B)), index=B) > >>> s[A].values > array([ 1., 2., 0., nan]) > > > > On Wed, Dec 30, 2015 at 8:45 AM, Nicolas P. Rougier < > nicolas.roug...@inria.fr> wrote: > >> >> I’m scratching my head around a small problem but I can’t find a >> vectorized solution. >> I have 2 arrays A and B and I would like to get the indices (relative to >> B) of elements of A that are in B: >> >> >>> A = np.array([2,0,1,4]) >> >>> B = np.array([1,2,0]) >> >>> print (some_function(A,B)) >> [1,2,0] >> >> # A[0] == 2 is in B and 2 == B[1] -> 1 >> # A[1] == 0 is in B and 0 == B[2] -> 2 >> # A[2] == 1 is in B and 1 == B[0] -> 0 >> >> Any idea ? I tried numpy.in1d with no luck. >> >> >> Nicolas >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> https://mail.scipy.org/mailman/listinfo/numpy-discussion >> > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > https://mail.scipy.org/mailman/listinfo/numpy-discussion > >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion