Re: Counting nonzeros
- To: mathgroup at smc.vnet.net
- Subject: [mg86878] Re: [mg86865] Counting nonzeros
- From: "Thomas Dowling" <thomasgdowling at gmail.com>
- Date: Tue, 25 Mar 2008 01:14:41 -0500 (EST)
- References: <200803240644.BAA17004@smc.vnet.net>
Hello,
Using Count and Except[0] is surprisingly slow
listi = RandomInteger[{0, 100}, 100000];
Length[listi] - Count[listi, 0] // Timing
Out[30]= {0.02711, 98995}
Count[listi, Except[0]] // Timing
Out[31]= {0.063781, 98995}
However, I remember reading in a previous post (which I cannot find) about
Tally & Clip, perhaps by Carl Woll
Tally[Clip[listi]][[1, 2]] // Timing
Out[32]= {0.004693, 98995}
I suppose there are even faster ways.
Tom Dowling
On Mon, Mar 24, 2008 at 6:44 AM, <carlos at colorado.edu> wrote:
> I want to count the # of NZ entries in an arbitrary multilevel list,
> say exp, that contains only integers. Is this the easiest way:
>
> k = Length[Flatten[exp]]-Count[Flatten[exp],0]
>
>
- References:
- Counting nonzeros
- From: carlos@Colorado.EDU
- Counting nonzeros