NumPy - Insert an array of zeros after specified indices









up vote
5
down vote

favorite
3












My code is:



x=np.linspace(1,5,5)

a=np.insert(x,np.arange(1,5,1),np.zeros(3))


The output I want is:



[1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]


The error I get is:




ValueError: shape mismatch: value array of shape (3,) could not be
broadcast to indexing result of shape (4,)




When I do:



x=np.linspace(1,5,5)

a=np.insert(x,np.arange(1,5,1),0)


The out is:



array([1., 0., 2., 0., 3., 0., 4., 0., 5.])


Why it doesn't work when I try to insert an array?



P.S. I I cannot use loops










share|improve this question









New contributor




Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.























    up vote
    5
    down vote

    favorite
    3












    My code is:



    x=np.linspace(1,5,5)

    a=np.insert(x,np.arange(1,5,1),np.zeros(3))


    The output I want is:



    [1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]


    The error I get is:




    ValueError: shape mismatch: value array of shape (3,) could not be
    broadcast to indexing result of shape (4,)




    When I do:



    x=np.linspace(1,5,5)

    a=np.insert(x,np.arange(1,5,1),0)


    The out is:



    array([1., 0., 2., 0., 3., 0., 4., 0., 5.])


    Why it doesn't work when I try to insert an array?



    P.S. I I cannot use loops










    share|improve this question









    New contributor




    Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.





















      up vote
      5
      down vote

      favorite
      3









      up vote
      5
      down vote

      favorite
      3






      3





      My code is:



      x=np.linspace(1,5,5)

      a=np.insert(x,np.arange(1,5,1),np.zeros(3))


      The output I want is:



      [1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]


      The error I get is:




      ValueError: shape mismatch: value array of shape (3,) could not be
      broadcast to indexing result of shape (4,)




      When I do:



      x=np.linspace(1,5,5)

      a=np.insert(x,np.arange(1,5,1),0)


      The out is:



      array([1., 0., 2., 0., 3., 0., 4., 0., 5.])


      Why it doesn't work when I try to insert an array?



      P.S. I I cannot use loops










      share|improve this question









      New contributor




      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      My code is:



      x=np.linspace(1,5,5)

      a=np.insert(x,np.arange(1,5,1),np.zeros(3))


      The output I want is:



      [1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]


      The error I get is:




      ValueError: shape mismatch: value array of shape (3,) could not be
      broadcast to indexing result of shape (4,)




      When I do:



      x=np.linspace(1,5,5)

      a=np.insert(x,np.arange(1,5,1),0)


      The out is:



      array([1., 0., 2., 0., 3., 0., 4., 0., 5.])


      Why it doesn't work when I try to insert an array?



      P.S. I I cannot use loops







      python arrays numpy






      share|improve this question









      New contributor




      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited Nov 8 at 13:50









      jpp

      80.2k184695




      80.2k184695






      New contributor




      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Nov 8 at 13:01









      Danjmp

      283




      283




      New contributor




      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Danjmp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          Another option:



          np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]


          gives:



          array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
          0., 0., 0., 5.])


          That is, pretend x is a column vector and stack a 5x3 block of zeros to the right of it and then flatten.






          share|improve this answer



























            up vote
            3
            down vote













            You can use np.repeat to feed repeated indices. For a 1d array, thhe obj argument for np.insert reference individual indices.



            x = np.linspace(1, 5, 5)

            a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)

            array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
            0., 0., 0., 5.])





            share|improve this answer






















              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "1"
              ;
              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',
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              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
              );



              );






              Danjmp is a new contributor. Be nice, and check out our Code of Conduct.









               

              draft saved


              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208295%2fnumpy-insert-an-array-of-zeros-after-specified-indices%23new-answer', 'question_page');

              );

              Post as a guest






























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes








              up vote
              2
              down vote



              accepted










              Another option:



              np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]


              gives:



              array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
              0., 0., 0., 5.])


              That is, pretend x is a column vector and stack a 5x3 block of zeros to the right of it and then flatten.






              share|improve this answer
























                up vote
                2
                down vote



                accepted










                Another option:



                np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]


                gives:



                array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                0., 0., 0., 5.])


                That is, pretend x is a column vector and stack a 5x3 block of zeros to the right of it and then flatten.






                share|improve this answer






















                  up vote
                  2
                  down vote



                  accepted







                  up vote
                  2
                  down vote



                  accepted






                  Another option:



                  np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]


                  gives:



                  array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                  0., 0., 0., 5.])


                  That is, pretend x is a column vector and stack a 5x3 block of zeros to the right of it and then flatten.






                  share|improve this answer












                  Another option:



                  np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]


                  gives:



                  array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                  0., 0., 0., 5.])


                  That is, pretend x is a column vector and stack a 5x3 block of zeros to the right of it and then flatten.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 8 at 13:19









                  xnx

                  15k43670




                  15k43670






















                      up vote
                      3
                      down vote













                      You can use np.repeat to feed repeated indices. For a 1d array, thhe obj argument for np.insert reference individual indices.



                      x = np.linspace(1, 5, 5)

                      a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)

                      array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                      0., 0., 0., 5.])





                      share|improve this answer


























                        up vote
                        3
                        down vote













                        You can use np.repeat to feed repeated indices. For a 1d array, thhe obj argument for np.insert reference individual indices.



                        x = np.linspace(1, 5, 5)

                        a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)

                        array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                        0., 0., 0., 5.])





                        share|improve this answer
























                          up vote
                          3
                          down vote










                          up vote
                          3
                          down vote









                          You can use np.repeat to feed repeated indices. For a 1d array, thhe obj argument for np.insert reference individual indices.



                          x = np.linspace(1, 5, 5)

                          a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)

                          array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                          0., 0., 0., 5.])





                          share|improve this answer














                          You can use np.repeat to feed repeated indices. For a 1d array, thhe obj argument for np.insert reference individual indices.



                          x = np.linspace(1, 5, 5)

                          a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)

                          array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
                          0., 0., 0., 5.])






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Nov 8 at 14:25

























                          answered Nov 8 at 13:16









                          jpp

                          80.2k184695




                          80.2k184695




















                              Danjmp is a new contributor. Be nice, and check out our Code of Conduct.









                               

                              draft saved


                              draft discarded


















                              Danjmp is a new contributor. Be nice, and check out our Code of Conduct.












                              Danjmp is a new contributor. Be nice, and check out our Code of Conduct.











                              Danjmp is a new contributor. Be nice, and check out our Code of Conduct.













                               


                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208295%2fnumpy-insert-an-array-of-zeros-after-specified-indices%23new-answer', 'question_page');

                              );

                              Post as a guest














































































                              Popular posts from this blog

                              𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                              PHP code is not being executed, instead code shows on the page

                              Malaysia to Papua New Guinea by motorcycle?