Averaging over columns while ignoring zero entriesOperations on a List of Vectors (Norm)Compute percentages...

Having the player face themselves after the mid-game

I am the light that shines in the dark

If nine coins are tossed, what is the probability that the number of heads is even?

Should I use HTTPS on a domain that will only be used for redirection?

How can I export Query Store data?

Why do phishing e-mails use faked e-mail addresses instead of the real one?

What is the purpose of a disclaimer like "this is not legal advice"?

Check if translation is new

I can't find CRS EPSG 27700 in version 3.6.0

A vote on the Brexit backstop

Does the US political system, in principle, allow for a no-party system?

How does learning spells work when leveling a multiclass character?

“I had a flat in the centre of town, but I didn’t like living there, so …”

Why is my explanation wrong?

Is "cogitate" an appropriate word for this?

Precision notation for voltmeters

Other authors are notified except me, good or bad sign?

What is Tony Stark injecting into himself in Iron Man 3?

Is this Paypal Github SDK reference really a dangerous site?

Was it really inappropriate to write a pull request for the company I interviewed with?

Is every open circuit a capacitor?

Is there a way to find out the age of climbing ropes?

How does energy based projectile blow up a spaceship?

SHA 256 Algorithm



Averaging over columns while ignoring zero entries


Operations on a List of Vectors (Norm)Compute percentages in a listHow to count number of observations/rows within each groupConditional string replacementHow to select elements from a list of pairs based on 2nd element of the pairSubtract value from listList operation depending on conditionHow to list ArrayFilter?Replace a list with a listVector operation on datasets













1












$begingroup$


I have:



list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, 
{1, 0, 2, 2, 2, 4, 0}}


I want to calculate the average but without considering the 0s.



The result should be:



Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];

result // N

{2., 3., 3., 4., 4., 3., 9.}


How can I replace the Do loop?










share|improve this question











$endgroup$








  • 1




    $begingroup$
    Mean /@ DeleteCases[Transpose@list, 0, All]
    $endgroup$
    – MarcoB
    2 hours ago










  • $begingroup$
    Thank you for the solution.
    $endgroup$
    – lio
    2 hours ago












  • $begingroup$
    You’re welcome. I’ve added an answer since this solution works for you
    $endgroup$
    – MarcoB
    2 hours ago








  • 2




    $begingroup$
    I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
    $endgroup$
    – J. M. is computer-less
    2 hours ago










  • $begingroup$
    @J.M. Well, that is clever! Cool trick :-)
    $endgroup$
    – MarcoB
    15 mins ago
















1












$begingroup$


I have:



list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, 
{1, 0, 2, 2, 2, 4, 0}}


I want to calculate the average but without considering the 0s.



The result should be:



Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];

result // N

{2., 3., 3., 4., 4., 3., 9.}


How can I replace the Do loop?










share|improve this question











$endgroup$








  • 1




    $begingroup$
    Mean /@ DeleteCases[Transpose@list, 0, All]
    $endgroup$
    – MarcoB
    2 hours ago










  • $begingroup$
    Thank you for the solution.
    $endgroup$
    – lio
    2 hours ago












  • $begingroup$
    You’re welcome. I’ve added an answer since this solution works for you
    $endgroup$
    – MarcoB
    2 hours ago








  • 2




    $begingroup$
    I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
    $endgroup$
    – J. M. is computer-less
    2 hours ago










  • $begingroup$
    @J.M. Well, that is clever! Cool trick :-)
    $endgroup$
    – MarcoB
    15 mins ago














1












1








1





$begingroup$


I have:



list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, 
{1, 0, 2, 2, 2, 4, 0}}


I want to calculate the average but without considering the 0s.



The result should be:



Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];

result // N

{2., 3., 3., 4., 4., 3., 9.}


How can I replace the Do loop?










share|improve this question











$endgroup$




I have:



list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, 
{1, 0, 2, 2, 2, 4, 0}}


I want to calculate the average but without considering the 0s.



The result should be:



Do[
array = list[[All, i]];
total = Total[array];
cnt = Count[array, 0];
result[[i]] = total/(Length@array - cnt);,
{i, 1, Length@result}
];

result // N

{2., 3., 3., 4., 4., 3., 9.}


How can I replace the Do loop?







list-manipulation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 13 mins ago









m_goldberg

87.4k872198




87.4k872198










asked 3 hours ago









liolio

1,088217




1,088217








  • 1




    $begingroup$
    Mean /@ DeleteCases[Transpose@list, 0, All]
    $endgroup$
    – MarcoB
    2 hours ago










  • $begingroup$
    Thank you for the solution.
    $endgroup$
    – lio
    2 hours ago












  • $begingroup$
    You’re welcome. I’ve added an answer since this solution works for you
    $endgroup$
    – MarcoB
    2 hours ago








  • 2




    $begingroup$
    I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
    $endgroup$
    – J. M. is computer-less
    2 hours ago










  • $begingroup$
    @J.M. Well, that is clever! Cool trick :-)
    $endgroup$
    – MarcoB
    15 mins ago














  • 1




    $begingroup$
    Mean /@ DeleteCases[Transpose@list, 0, All]
    $endgroup$
    – MarcoB
    2 hours ago










  • $begingroup$
    Thank you for the solution.
    $endgroup$
    – lio
    2 hours ago












  • $begingroup$
    You’re welcome. I’ve added an answer since this solution works for you
    $endgroup$
    – MarcoB
    2 hours ago








  • 2




    $begingroup$
    I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
    $endgroup$
    – J. M. is computer-less
    2 hours ago










  • $begingroup$
    @J.M. Well, that is clever! Cool trick :-)
    $endgroup$
    – MarcoB
    15 mins ago








1




1




$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
2 hours ago




$begingroup$
Mean /@ DeleteCases[Transpose@list, 0, All]
$endgroup$
– MarcoB
2 hours ago












$begingroup$
Thank you for the solution.
$endgroup$
– lio
2 hours ago






$begingroup$
Thank you for the solution.
$endgroup$
– lio
2 hours ago














$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
2 hours ago






$begingroup$
You’re welcome. I’ve added an answer since this solution works for you
$endgroup$
– MarcoB
2 hours ago






2




2




$begingroup$
I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
$endgroup$
– J. M. is computer-less
2 hours ago




$begingroup$
I'm not at a computer right now, so please try Total[list]/Total[Unitize[list]].
$endgroup$
– J. M. is computer-less
2 hours ago












$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
15 mins ago




$begingroup$
@J.M. Well, that is clever! Cool trick :-)
$endgroup$
– MarcoB
15 mins ago










2 Answers
2






active

oldest

votes


















3












$begingroup$

Mean /@ DeleteCases[Transpose@list, 0, All]



{2,3,3,4,4,3,9}







share|improve this answer









$endgroup$





















    2












    $begingroup$

    I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.



    list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
    Total[list]/Total[Unitize[list]]



    {2, 3, 3, 4, 4, 3, 9}







    share|improve this answer











    $endgroup$













      Your Answer





      StackExchange.ifUsing("editor", function () {
      return StackExchange.using("mathjaxEditing", function () {
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
      });
      });
      }, "mathjax-editing");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "387"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192881%2faveraging-over-columns-while-ignoring-zero-entries%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      3












      $begingroup$

      Mean /@ DeleteCases[Transpose@list, 0, All]



      {2,3,3,4,4,3,9}







      share|improve this answer









      $endgroup$


















        3












        $begingroup$

        Mean /@ DeleteCases[Transpose@list, 0, All]



        {2,3,3,4,4,3,9}







        share|improve this answer









        $endgroup$
















          3












          3








          3





          $begingroup$

          Mean /@ DeleteCases[Transpose@list, 0, All]



          {2,3,3,4,4,3,9}







          share|improve this answer









          $endgroup$



          Mean /@ DeleteCases[Transpose@list, 0, All]



          {2,3,3,4,4,3,9}








          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 hours ago









          MarcoBMarcoB

          37k556113




          37k556113























              2












              $begingroup$

              I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.



              list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
              Total[list]/Total[Unitize[list]]



              {2, 3, 3, 4, 4, 3, 9}







              share|improve this answer











              $endgroup$


















                2












                $begingroup$

                I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.



                list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
                Total[list]/Total[Unitize[list]]



                {2, 3, 3, 4, 4, 3, 9}







                share|improve this answer











                $endgroup$
















                  2












                  2








                  2





                  $begingroup$

                  I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.



                  list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
                  Total[list]/Total[Unitize[list]]



                  {2, 3, 3, 4, 4, 3, 9}







                  share|improve this answer











                  $endgroup$



                  I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.



                  list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
                  Total[list]/Total[Unitize[list]]



                  {2, 3, 3, 4, 4, 3, 9}








                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  answered 17 mins ago


























                  community wiki





                  m_goldberg































                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Mathematica Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192881%2faveraging-over-columns-while-ignoring-zero-entries%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      El tren de la libertad Índice Antecedentes "Porque yo decido" Desarrollo de la...

                      Castillo d'Acher Características Menú de navegación

                      Connecting two nodes from the same mother node horizontallyTikZ: What EXACTLY does the the |- notation for...