# Product of non-zero elements in sparse array

How can I multiply the non-zero elements of a SparseArray?

Example:

a = SparseArray[{1 -> 1, 3 -> 2, 7 -> 3}]
Times @@ a (* this returns 0, but I need 6! *)

• – Mr.Wizard Feb 6 '14 at 14:14

1. The sparse array a is:

 {1, 0, 2, 0, 0, 0, 3}


hence applying Times to this yields zero

2. You can see the underlying array using Normal

  a // Normal

3. You could multiply the non-zero elements of a sparse array object:

 Times @@ a["NonzeroValues"]

• This is good to know! Could you perhaps point me to the documentation where "NonzeroValues" is mentioned? – Danvil Feb 6 '14 at 13:42
• @Danvil As far as I know it isn't documented. You can see the other SparseArray Properties with: SparseArray[{1}]["Properties"]. I gathered links to some of my uses of these in this answer. – Mr.Wizard Feb 6 '14 at 14:12