MathGroup Archive 2014

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

Search the Archive

Re: Mapping tag-value lists to a third

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132445] Re: Mapping tag-value lists to a third
  • From: Sseziwa Mukasa <mukasa at gmail.com>
  • Date: Tue, 18 Mar 2014 01:28:04 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20140317062731.30FA06A09@smc.vnet.net>

Pick[val,tag,1]

Experimenting, it looks like this scales roughly linearly, although at large list sizes memory management may become an issue:

timePick[n_]:=With[{val=Array[f[#]&,{n}],tab=RandomInteger[1,{n}]},Print["Time to pick ",Count[tab,1]," elements out of list of length ",n," is  ",First[Timing[Pick[val,tab,1]]],"s"]]
timePick[10^6]
timePick[2 10^6]
timePick[3 10^6]
Time to pick 500199 elements out of list of length 1000000 is  0.101878s
Time to pick 999630 elements out of list of length 2000000 is  0.204906s
Time to pick 1499923 elements out of list of length 3000000 is  0.385943s

On Mar 17, 2014, at 2:27 AM, carlos.felippa%colorado.edu at gtempaccount.com wrote:

> Hi,
>
> I have 2 lists of equal length such as
>
> tag={0, 1, 0, 0, 0, 1, 0, 1};  val={f1,f2,f3,f4,f5,f6,f7,f8}
>
> and want to produce a third:
>
> tagval={f2,f6,f8}
>
> with length Count[tag,1] containing the entries of val marked by 1-tags. Should be
> something efficient, since the source lists may be large (10^6 to 10^7).  Thanks.
>




  • Prev by Date: Re: Mapping tag-value lists to a third
  • Next by Date: Re: Mapping tag-value lists to a third
  • Previous by thread: Re: Mapping tag-value lists to a third
  • Next by thread: Re: Mapping tag-value lists to a third