Re: Replace, ReplaceAll and If time performace comparition
- To: mathgroup at smc.vnet.net
- Subject: [mg127029] Re: Replace, ReplaceAll and If time performace comparition
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Mon, 25 Jun 2012 04:02:23 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201206240826.EAA08423@smc.vnet.net>
With a pattern you get a slight improvement with
(randomList /. (_?Negative -> 0))
However, Clip is much faster
Clip[randomList, {0, Infinity}]
Bob Hanlon
On Sun, Jun 24, 2012 at 4:26 AM, Murta <rodrigomurtax at gmail.com> wrote:
> HI all
> I was working in some simulations with random numbers and get this example of performance comparition.
>
> randomList = RandomInteger[{-100, 100}, 10 10^6];
>
> (randomList /. (x_ /; x < 0 -> 0)); // AbsoluteTiming
> {5.747133, Null}
>
> Replace[randomList, (x_ /; x < 0 -> 0), 1]; // AbsoluteTiming
> {4.758984, Null}
>
> (If[# < 0, 0, #] & /@ randomList); // AbsoluteTiming
> {0.572200, Null}
>
> I personally prefer work with patterns because they are more compact and functional.
> Someone knows why patter is one magnitude order slow?? There is some trick to make it faster?
>
> tks
> Murta
>
--
Bob Hanlon
- References:
- Replace, ReplaceAll and If time performace comparition
- From: Murta <rodrigomurtax@gmail.com>
- Replace, ReplaceAll and If time performace comparition