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

Rejected in 4th interview round citing insufficient years of experience

Make a transparent 448*448 image

Implicit nil checks in algorithms

Possible Leak In Concrete

It's a yearly task, alright

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

Is Mortgage interest accrued after a December payment tax deductible?

The use of "touch" and "touch on" in context

Be in awe of my brilliance!

Can unconscious characters be unwilling?

Bastion server: use TCP forwarding VS placing private key on server

Am I not good enough for you?

Brexit - No Deal Rejection

At what level can a dragon innately cast its spells?

How to answer questions about my characters?

How to make healing in an exploration game interesting

Good allowance savings plan?

What has been your most complicated TikZ drawing?

Can hydraulic brake levers get hot when brakes overheat?

Function to parse .NET composite string format

PTIJ: Who should pay for Uber rides: the child or the parent?

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

Employee lack of ownership

How to get the name of the database a stored procedure is executed in within that stored procedure while it's executing?



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













3












$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$
















    3












    $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$














      3












      3








      3





      $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 1 hour ago







      lio

















      asked 1 hour ago









      liolio

      1,135217




      1,135217




















          2 Answers
          2






          active

          oldest

          votes


















          3












          $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
            1 hour 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
            1 hour ago


















          2












          $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
            1 hour ago










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









          3












          $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
            1 hour 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
            1 hour ago















          3












          $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
            1 hour 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
            1 hour ago













          3












          3








          3





          $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 1 hour 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
            1 hour 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
            1 hour ago
















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










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




          $begingroup$
          Do you have an idea for result2 improvement?
          $endgroup$
          – lio
          1 hour 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
          1 hour 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
          1 hour ago











          2












          $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
            1 hour ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            1 hour ago















          2












          $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
            1 hour ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            1 hour ago













          2












          2








          2





          $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 1 hour 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
            1 hour ago










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            1 hour ago
















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










          • $begingroup$
            @lio, please see the update.
            $endgroup$
            – kglr
            1 hour ago















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




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












          $begingroup$
          @lio, please see the update.
          $endgroup$
          – kglr
          1 hour ago




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

          Best approach to update all entries in a list that is paginated?Best way to add items to a paginated listChoose Your Country: Best Usability approachUpdate list when a user is viewing the list without annoying themWhen would the best day to update your webpage be?What should happen when I add a Row to a paginated, sorted listShould I adopt infinite scrolling or classical pagination?How to show user that page objects automatically updateWhat is the best location to locate the comments section in a list pageBest way to combine filtering and selecting items in a listWhen one of two inputs must be updated to satisfy a consistency criteria, which should you update (if at all)?

          Вунгтау (аеропорт) Загальні відомості | Див. також | Посилання | Навігаційне меню10°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.0833310°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.083337731608Vinh AirportVinh airport facelift improves serviceвиправивши або дописавши їївиправивши або дописавши їїр

          Тонконіг бульбистий Зміст Опис | Поширення | Екологія | Господарське значення | Примітки | Див. також | Література | Джерела | Посилання | Навігаційне меню1114601320038-241116202404kew-435458Poa bulbosaЭлектронный каталог сосудистых растений Азиатской России [Електронний каталог судинних рослин Азіатської Росії]Малышев Л. Л. Дикие родичи культурных растений. Poa bulbosa L. - Мятлик луковичный. [Малишев Л. Л. Дикі родичи культурних рослин. Poa bulbosa L. - Тонконіг бульбистий.]Мятлик (POA) Сем. Злаки (Мятликовые) [Тонконіг (POA) Род. Злаки (Тонконогові)]Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Description from Flora of China) [Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Опис від Флора Китаю)]Poa bulbosa L. – lipnice cibulkatá / lipnica cibulkatáPoa bulbosa в базі даних Poa bulbosa на сайті Poa bulbosa в базі даних «Global Biodiversity Information Facility» (GBIF)Poa bulbosa в базі даних «Euro + Med PlantBase» — інформаційному ресурсі для Євро-середземноморського розмаїття рослинPoa bulbosa L. на сайті «Плантариум»