Re: Re: How to quickly find number of non-zero elements in sparse matrix rows?
- To: mathgroup at smc.vnet.net
- Subject: [mg56920] Re: [mg56900] Re: How to quickly find number of non-zero elements in sparse matrix rows?
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Tue, 10 May 2005 03:42:24 -0400 (EDT)
- References: <d5hum0$k03$1@smc.vnet.net> <d5j5ec$qdr$1@smc.vnet.net> <200505090546.BAA13904@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On May 9, 2005, at 1:46 AM, Paul Abbott wrote:
> In article <d5j5ec$qdr$1 at smc.vnet.net>,
> Paul Abbott <paul at physics.uwa.edu.au> wrote:
>
>> For the full array, the following is quite reasonable:
>>
>> Most[Length /@ Split[ArrayRules[sa], #1[[1,1]]==#2[[1,1]]&]];
>> //Timing
>
> Chris Chiasson <chris.chiasson at gmail.com> pointed out that my code
> does not work
> if the array has all zero rows. This is easy to fix:
>
> {#[[1,1,1]],Length[#]}& /@
> Split[ArrayRules[sa], #1[[1,1]]==#2[[1,1]]& ] // Most
>
> returns the row number and number of non-zero entries in sa.
>
Just for completeness' sake I timed a similar expression:
{#[[1, 1]], Length[#]} & /@ Split[Sort[#[[1]] & /@ Most[
ArrayRules[sa]]], #1[[1]] == #2[[1]] &]
over a 200000 by 200000 array and it took about 5 seconds on a 1GHz G4
which seems reasonable.
Regards,
Ssezi
- References:
- Re: How to quickly find number of non-zero elements in sparse matrix rows?
- From: Paul Abbott <paul@physics.uwa.edu.au>
- Re: How to quickly find number of non-zero elements in sparse matrix rows?