Re: Replace
- To: mathgroup at smc.vnet.net
- Subject: [mg121100] Re: Replace
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 28 Aug 2011 04:05:07 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j35am1$og8$1@smc.vnet.net> <j37p96$4lk$1@smc.vnet.net> <j3anhr$hg0$1@smc.vnet.net>
Am 27.08.2011 14:22, schrieb Armand Tamzarian: ... > Doh! you wanted "|" not "/" > > It still looks like using Part will give the fastest solution (on my > system at least, 8.0.1 OS X 10.6.8) > > tmp = RandomInteger[{1, 20}, {20000, 2}]; > > Timing[tmp /. {x_, y_} :> x | y;] > > Timing[Alternatives @@@ tmp;] > > Timing[Thread[tmp[[All, 1]] | tmp[[All, 2]]];] > > Mike > Transpose seems to be even a bit faster than Part: In[1]:= tmp = RandomInteger[{1, 20}, {2000000, 2}]; {t, r} = Transpose[{ Timing[tmp /. {x_, y_} :> x | y], Timing[Apply[Alternatives, tmp, {1}]], Timing[Thread[tmp[[All,1]] | tmp[[All,2]]]], Timing[Thread[Alternatives @@ Transpose[tmp]]]} ]; t SameQ @@ r Out[3]= {1.56,0.764,0.624,0.531} Out[4]= True