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

How to simplify this time periods definition interface?

Replacing Windows 7 security updates with anti-virus?

Welcoming 2019 Pi day: How to draw the letter π?

Can unconscious characters be unwilling?

Can hydraulic brake levers get hot when brakes overheat?

How do I hide Chekhov's Gun?

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

Happy pi day, everyone!

Do I need life insurance if I can cover my own funeral costs?

2D counterpart of std::array in C++17

Running a subshell from the middle of the current command

Provisioning profile doesn't include the application-identifier and keychain-access-groups entitlements

Rejected in 4th interview round citing insufficient years of experience

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

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

Counting certain elements in lists

Cultural lunch issues

Schematic conventions for different supply rails

Sword in the Stone story where the sword was held in place by electromagnets

Is Mortgage interest accrued after a December payment tax deductible?

How is the Swiss post e-voting system supposed to work, and how was it wrong?

Does splitting a potentially monolithic application into several smaller ones help prevent bugs?

I need to drive a 7/16" nut but am unsure how to use the socket I bought for my screwdriver

What do these Greek words say? Possibly 2nd century



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 40 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
            55 mins ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            42 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
            35 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
            39 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            31 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
            55 mins ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            42 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
            35 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
            55 mins ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            42 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
            35 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 37 mins ago

























          answered 1 hour ago









          MarcoBMarcoB

          37.5k556113




          37.5k556113











          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            55 mins ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            42 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
            35 mins ago
















          • $begingroup$
            This is great ...
            $endgroup$
            – lio
            55 mins ago










          • $begingroup$
            Do you have an idea for result2 improvement?
            $endgroup$
            – lio
            42 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
            35 mins ago















          $begingroup$
          This is great ...
          $endgroup$
          – lio
          55 mins ago




          $begingroup$
          This is great ...
          $endgroup$
          – lio
          55 mins ago












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




          $begingroup$
          Do you have an idea for result2 improvement?
          $endgroup$
          – lio
          42 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
          35 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
          35 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
            39 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            31 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
            39 mins ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            31 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 28 mins ago

























          answered 52 mins ago









          kglrkglr

          188k10205422




          188k10205422











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










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
















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










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















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




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












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




          $begingroup$
          @lio, please see the update.
          $endgroup$
          – kglr
          31 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

          Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

          2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

          Button changing it's text & action. Good or terrible? The 2019 Stack Overflow Developer Survey Results Are Inchanging text on user mouseoverShould certain functions be “hard to find” for powerusers to discover?Custom liking function - do I need user login?Using different checkbox style for different checkbox behaviorBest Practices: Save and Exit in Software UIInteraction with remote validated formMore efficient UI to progress the user through a complicated process?Designing a popup notice for a gameShould bulk-editing functions be hidden until a table row is selected, or is there a better solution?Is it bad practice to disable (replace) the context menu?