using Transpose vs. Thread
- To: mathgroup at yoda.physics.unc.edu
- Subject: using Transpose vs. Thread
- From: gaylord at ux1.cso.uiuc.edu
- Date: Fri, 4 Sep 1992 08:44:01 -0500
i was messing around and came across this Timing[Map[(#[[1]] -> #[[2]])&, Transpose[{Range[1000],Range[1000]}]];] {2.23333 Second, Null} Timing[Map[Apply[Rule,#]&, Transpose[{Range[1000],Range[1000]}]];] {2.15 Second, Null} Timing[Thread[Rule[Range[1000],Range[1000]]];] {0.85 Second, Null} ------------------------------ more generally on the Transpose function itself Transpose[{Range[5],Range[5]}] {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}} Thread[List[Range[5],Range[5]]] {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}} Timing[Thread[List[Range[10000],Range[10000]]];] {3.71667 Second, Null} Timing[Transpose[{Range[10000],Range[10000]}];] {4.51667 Second, Null} so it looks like we can define a user-defined function, maybe call it transposeFast (i'm too modest to have it named after myself) which is faster than the built-in Transpose function. interesting richard j. gaylord, university of illinois, gaylord at ux1.cso.uiuc.edu "if you're not programming functionally, then you must be programming dysfunctionally"