[Numpy-discussion] How to find indices of values in an array (indirect in1d) ?

Nicolas P. Rougier Nicolas.Rougier at inria.fr
Wed Dec 30 11:12:40 EST 2015


Thanks for the quick answers. I think I will go with the .index and list comprehension.
But if someone finds with a vectorised solution for the numpy 100 exercises...


Nicolas


> On 30 Dec 2015, at 16:31, Benjamin Root <ben.v.root at gmail.com> wrote:
> 
> 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.terrel at 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.Rougier at 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([0,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 at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
> 
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
> 
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list