Re: Find Position of many elements in a large list.
- To: mathgroup at smc.vnet.net
- Subject: [mg127690] Re: Find Position of many elements in a large list.
- From: Tomas Garza <tgarza10 at msn.com>
- Date: Wed, 15 Aug 2012 03:34:06 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20120814082221.E17D66791@smc.vnet.net>
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. >
- References:
- Find Position of many elements in a large list.
- From: benp84@gmail.com
- Find Position of many elements in a large list.