Counting certain elements in listsSplitting up delimited data in listsCounting function, comparing listsTake the next element in a nested listIssue with very large lists in Mathematica“renormalising” a listTiming and memory use is critical:fast partitioning of binary sparse arrayReplicate sublist in new listLess than Nothingrebinning of dataCounting elements in a list

Making a sword in the stone, in a medieval world without magic

What options are left, if Britain cannot decide?

Why must traveling waves have the same amplitude to form a standing wave?

Is it true that real estate prices mainly go up?

Make a transparent 448*448 image

Function to parse .NET composite string format

/bin/ls output does not match manpage

Why is a Java array index expression evaluated before checking if the array reference expression is null?

Can anyone tell me why this program fails?

How to generate globally unique ids for different tables of the same database?

Is a lawful good "antagonist" effective?

Rules about breaking the rules. How do I do it well?

Why is stat::st_size 0 for devices but at the same time lseek defines the device size correctly?

About parabolic Kazhdan Lusztig polynomials

Instead of Universal Basic Income, why not Universal Basic NEEDS?

Replacing Windows 7 security updates with anti-virus?

Bash replace string at multiple places in a file from command line

Is Mortgage interest accrued after a December payment tax deductible?

Running a subshell from the middle of the current command

Why does Deadpool say "You're welcome, Canada," after shooting Ryan Reynolds in the end credits?

Plot a function of two variables equal 0

Pinhole Camera with Instant Film

Should we release the security issues we found in our product as CVE or we can just update those on weekly release notes?

How do anti-virus programs start at Windows boot?



Counting certain elements in lists


Splitting up delimited data in listsCounting function, comparing listsTake the next element in a nested listIssue with very large lists in Mathematica“renormalising” a listTiming and memory use is critical:fast partitioning of binary sparse arrayReplicate sublist in new listLess than Nothingrebinning of dataCounting elements in a list













2












$begingroup$


I have the following data set:



n1 = 1000;
data1 = #, RandomInteger[3, 20] & /@ Range[n1];

Dimensions@data1
1000, 2


I want to count how often data1[[All, 2]] == 1.



My solution, which seems to be wrong:



result1 = Table[
Count[Flatten@(data1[[i, 2]]), u_ /; u == 1],
i, 1, n1
];

Dimensions@result1
1000


Now I have 50 appended lists of data1 (= data2).



n3 = 50;

data2 = Array[0 &, n3];

Do[
data2[[i]] = #, RandomInteger[3, 20] & /@ Range[n1];
, i, 1, n3
];

Dimensions@data2
50, 1000, 2


I want to count how often data2[[j, i, 2]] == 1, where i, 1, n1 and j, 1, n3.



My solution for this more complicated list:



result2 = Array[0 &, n3];

Do[
result2[[j]] =
Table[
Count[Flatten@(data2[[j, i, 2]]), u_ /; u == 1],
i, 1, n1
];
, j, 1, n3
];

Dimensions@result2
50, 1000


How can I replace the Do loops in both cases and improve the performance?










share|improve this question











$endgroup$
















    2












    $begingroup$


    I have the following data set:



    n1 = 1000;
    data1 = #, RandomInteger[3, 20] & /@ Range[n1];

    Dimensions@data1
    1000, 2


    I want to count how often data1[[All, 2]] == 1.



    My solution, which seems to be wrong:



    result1 = Table[
    Count[Flatten@(data1[[i, 2]]), u_ /; u == 1],
    i, 1, n1
    ];

    Dimensions@result1
    1000


    Now I have 50 appended lists of data1 (= data2).



    n3 = 50;

    data2 = Array[0 &, n3];

    Do[
    data2[[i]] = #, RandomInteger[3, 20] & /@ Range[n1];
    , i, 1, n3
    ];

    Dimensions@data2
    50, 1000, 2


    I want to count how often data2[[j, i, 2]] == 1, where i, 1, n1 and j, 1, n3.



    My solution for this more complicated list:



    result2 = Array[0 &, n3];

    Do[
    result2[[j]] =
    Table[
    Count[Flatten@(data2[[j, i, 2]]), u_ /; u == 1],
    i, 1, n1
    ];
    , j, 1, n3
    ];

    Dimensions@result2
    50, 1000


    How can I replace the Do loops in both cases and improve the performance?










    share|improve this question











    $endgroup$














      2












      2








      2





      $begingroup$


      I have the following data set:



      n1 = 1000;
      data1 = #, RandomInteger[3, 20] & /@ Range[n1];

      Dimensions@data1
      1000, 2


      I want to count how often data1[[All, 2]] == 1.



      My solution, which seems to be wrong:



      result1 = Table[
      Count[Flatten@(data1[[i, 2]]), u_ /; u == 1],
      i, 1, n1
      ];

      Dimensions@result1
      1000


      Now I have 50 appended lists of data1 (= data2).



      n3 = 50;

      data2 = Array[0 &, n3];

      Do[
      data2[[i]] = #, RandomInteger[3, 20] & /@ Range[n1];
      , i, 1, n3
      ];

      Dimensions@data2
      50, 1000, 2


      I want to count how often data2[[j, i, 2]] == 1, where i, 1, n1 and j, 1, n3.



      My solution for this more complicated list:



      result2 = Array[0 &, n3];

      Do[
      result2[[j]] =
      Table[
      Count[Flatten@(data2[[j, i, 2]]), u_ /; u == 1],
      i, 1, n1
      ];
      , j, 1, n3
      ];

      Dimensions@result2
      50, 1000


      How can I replace the Do loops in both cases and improve the performance?










      share|improve this question











      $endgroup$




      I have the following data set:



      n1 = 1000;
      data1 = #, RandomInteger[3, 20] & /@ Range[n1];

      Dimensions@data1
      1000, 2


      I want to count how often data1[[All, 2]] == 1.



      My solution, which seems to be wrong:



      result1 = Table[
      Count[Flatten@(data1[[i, 2]]), u_ /; u == 1],
      i, 1, n1
      ];

      Dimensions@result1
      1000


      Now I have 50 appended lists of data1 (= data2).



      n3 = 50;

      data2 = Array[0 &, n3];

      Do[
      data2[[i]] = #, RandomInteger[3, 20] & /@ Range[n1];
      , i, 1, n3
      ];

      Dimensions@data2
      50, 1000, 2


      I want to count how often data2[[j, i, 2]] == 1, where i, 1, n1 and j, 1, n3.



      My solution for this more complicated list:



      result2 = Array[0 &, n3];

      Do[
      result2[[j]] =
      Table[
      Count[Flatten@(data2[[j, i, 2]]), u_ /; u == 1],
      i, 1, n1
      ];
      , j, 1, n3
      ];

      Dimensions@result2
      50, 1000


      How can I replace the Do loops in both cases and improve the performance?







      list-manipulation






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 51 mins ago







      lio

















      asked 1 hour ago









      liolio

      1,130217




      1,130217




















          2 Answers
          2






          active

          oldest

          votes


















          2












          $begingroup$

          For your result1:



          Count[1] /@ data1[[All, 2, 1]]


          For your result2:



          Map[Count[1], data2[[All, All, 2, 1]], 2];





          share|improve this answer











          $endgroup$












          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            1 hour ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            53 mins ago










          • $begingroup$
            @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
            $endgroup$
            – MarcoB
            46 mins ago


















          1












          $begingroup$

          r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], 2] 

          Short @ %



          5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5




          r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], 4];
          r2 // Dimensions



          50, 1000







          share|improve this answer











          $endgroup$












          • $begingroup$
            Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
            $endgroup$
            – lio
            51 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            42 mins ago










          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%2f193270%2fcounting-certain-elements-in-lists%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









          2












          $begingroup$

          For your result1:



          Count[1] /@ data1[[All, 2, 1]]


          For your result2:



          Map[Count[1], data2[[All, All, 2, 1]], 2];





          share|improve this answer











          $endgroup$












          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            1 hour ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            53 mins ago










          • $begingroup$
            @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
            $endgroup$
            – MarcoB
            46 mins ago















          2












          $begingroup$

          For your result1:



          Count[1] /@ data1[[All, 2, 1]]


          For your result2:



          Map[Count[1], data2[[All, All, 2, 1]], 2];





          share|improve this answer











          $endgroup$












          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            1 hour ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            53 mins ago










          • $begingroup$
            @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
            $endgroup$
            – MarcoB
            46 mins ago













          2












          2








          2





          $begingroup$

          For your result1:



          Count[1] /@ data1[[All, 2, 1]]


          For your result2:



          Map[Count[1], data2[[All, All, 2, 1]], 2];





          share|improve this answer











          $endgroup$



          For your result1:



          Count[1] /@ data1[[All, 2, 1]]


          For your result2:



          Map[Count[1], data2[[All, All, 2, 1]], 2];






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 49 mins ago

























          answered 1 hour ago









          MarcoBMarcoB

          37.5k556113




          37.5k556113











          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            1 hour ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            53 mins ago










          • $begingroup$
            @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
            $endgroup$
            – MarcoB
            46 mins ago
















          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            1 hour ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            53 mins ago










          • $begingroup$
            @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
            $endgroup$
            – MarcoB
            46 mins ago















          $begingroup$
          This is great ...
          $endgroup$
          – lio
          1 hour ago




          $begingroup$
          This is great ...
          $endgroup$
          – lio
          1 hour ago












          $begingroup$
          Do you have an idea for result2 improvement?
          $endgroup$
          – lio
          53 mins ago




          $begingroup$
          Do you have an idea for result2 improvement?
          $endgroup$
          – lio
          53 mins ago












          $begingroup$
          @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
          $endgroup$
          – MarcoB
          46 mins ago




          $begingroup$
          @lio Yes, I've added something for result2 as well. You can check that they give the same output as your result1 and result2 respectively.
          $endgroup$
          – MarcoB
          46 mins ago











          1












          $begingroup$

          r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], 2] 

          Short @ %



          5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5




          r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], 4];
          r2 // Dimensions



          50, 1000







          share|improve this answer











          $endgroup$












          • $begingroup$
            Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
            $endgroup$
            – lio
            51 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            42 mins ago















          1












          $begingroup$

          r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], 2] 

          Short @ %



          5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5




          r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], 4];
          r2 // Dimensions



          50, 1000







          share|improve this answer











          $endgroup$












          • $begingroup$
            Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
            $endgroup$
            – lio
            51 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            42 mins ago













          1












          1








          1





          $begingroup$

          r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], 2] 

          Short @ %



          5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5




          r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], 4];
          r2 // Dimensions



          50, 1000







          share|improve this answer











          $endgroup$



          r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], 2] 

          Short @ %



          5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5




          r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], 4];
          r2 // Dimensions



          50, 1000








          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 40 mins ago

























          answered 1 hour ago









          kglrkglr

          188k10205422




          188k10205422











          • $begingroup$
            Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
            $endgroup$
            – lio
            51 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            42 mins ago
















          • $begingroup$
            Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
            $endgroup$
            – lio
            51 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            42 mins ago















          $begingroup$
          Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
          $endgroup$
          – lio
          51 mins ago




          $begingroup$
          Great ... what do you think about result2. Now the Indices in the result2 double loop are correct.
          $endgroup$
          – lio
          51 mins ago












          $begingroup$
          @lio, please see the update.
          $endgroup$
          – kglr
          42 mins ago




          $begingroup$
          @lio, please see the update.
          $endgroup$
          – kglr
          42 mins ago

















          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%2f193270%2fcounting-certain-elements-in-lists%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

          Isabella Eugénie Boyer Biographie | Références | Menu de navigationmodifiermodifier le codeComparator to Compute the Relative Value of a U.S. Dollar Amount – 1774 to Present.

          Join wedge with single bond in chemfigHow to make only one part of double bond bold with chemfig?Crossing bonds in chemfigjoining atoms in chemfig. Two adjacent molculesHow do I selectively change bond length in chemfig?Ugly bond joints in chemfigchemfig: reaction above arrowUsing the mhchem and chemfig packages in conjunctionBonding to specific element letter using chemfigResonance hybrids in chemfigScale chemfig molecule in beamer with tikzWhy does this chemfig bond with a hook start in the middle of the atom?

          Are small insurances worth itIs insurance worth it if you can afford to replace the item? If not, when is it?Is accident insurance worth it for my kids who play sportsIs insuring property for more than it is worth allowed?At what point does it become worth it to file an insurance claim?Are wage loss insurance programs worth the cost compared to having an emergency fund?When is an event worth insuring against?Is insurance worth it if you can afford to replace the item? If not, when is it?FHA loan just commenced : Any way to get any of the up-front mortgage insurance back?Which types of insurances do I need to buy?Should I carry less renter's insurance if I can self-insure?Mortgage Adviser Signed Me Up For Multiple Home and Life Insurances (UK)Why many travel insurances don't cover country of nationality?