MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Find Position of many elements in a large list.


The lists needn't be sorted. Take the following example:
In[10]:= X = Range[1000000]; Y = RandomSample[Range[10000000], 10000];
The positions of X where there is a member of Y are found using
In[16]:= pos = Flatten[Position[X, #] & /@ Intersection[X, Y]]; // Timing

Out[16]= {8.39046, Null}
I don't know if 8.4 seconds is fast enough for your needs. This timing depends very much on the length of the intersection.
-Tomas



> From: benp84 at gmail.com
> Subject: Find Position of many elements in a large list.
> To: mathgroup at smc.vnet.net
> Date: Tue, 14 Aug 2012 04:22:21 -0400
>
> I have a sorted, 1-dimensional list X of 1,000,000 integers, and a sorted, 1-dimensional list Y of 10,000 integers.  Most, but not all, of the elements of Y are also elements of X.  I'd like to know the positions of the elements in X that are also in Y.  What's the fastest way to compute this?
>
> I have an algorithm in mind but it requires lots of custom code and I'm wondering if there's a clever way to do it with built-in functions.  Thanks.
>


  • Prev by Date: Re: Find Position of many elements in a large list.
  • Next by Date: working with nested lists
  • Previous by thread: Re: Find Position of many elements in a large list.
  • Next by thread: Re: Find Position of many elements in a large list.