Re: position of sequence of numbers in list
- To: mathgroup at smc.vnet.net
- Subject: [mg116219] Re: position of sequence of numbers in list
- From: Armand Tamzarian <mike.honeychurch at gmail.com>
- Date: Mon, 7 Feb 2011 06:05:19 -0500 (EST)
- References: <iiltlt$355$1@smc.vnet.net>
On Feb 6, 9:37 pm, "Mr. Wizard" <gl... at flashmail.com> wrote: > >I just found another way that outperforms both of our solutions on a > >wide range of integer arrays I tested. It turns out that one can > >extract the position directly from SparseArray, without using > >ArrayRules. It took me some time to figure it out: > > >extractPositionFromSparseArray[ > > HoldPattern[SparseArray[u___]]] := {u}[[4, 2, 2]] > > >positionExtr[x_List, n_] := > > Flatten@extractPositionFromSparseArray[ > > SparseArray[1 - Unitize[x - n]]] > > >Again, no unpacking. > > >Best, > >Norbert > > Oliver Ruebenkoenig recently gave an easier way to get these values > in the thread "Fast matrices comparison" started January 25th, 2011. > > SparseArray[{0, 1, 0, 0, 1, 0, 1, 1, 0, 0}]["NonzeroPositions"] > > SparseArray[{1}]["Properties"] > > Paul I noted in his post that this stuff is undocumented. Hard to fathom why this would be. Wonder if this is a V8 thing or has been there since SparseArray was included. Oliver, if you're reading this, what other undocumented goodies can you show to the group? Mike