How to append ND numpy arrays to (N+1)D numpy array through loop?












0















For example I need 30x30 numpy arrays created from images to be fed to a neural net. If I have a directory of images to predict, I should be able to loop through the directory, get image data and create an (n,30,30) shape np array
This is my current method, I intend to reshape each row before feeding to the model



def get_image_vectors(path):
img_list=os.listdir(path)
print(img_list)
X=np.empty((900,))
for img_file in img_list:
img= Image.open(os.path.join(path,img_file))
img_grey= img.convert("L")
resized = img_grey.resize((30,30))
flattened = np.array(resized.getdata())
# print(flattened.shape)
X=np.vstack((X,flattened))
print(img_file,'=>',X.shape)
return X[1:,:]









share|improve this question

























  • So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

    – hpaulj
    Nov 27 '18 at 21:25
















0















For example I need 30x30 numpy arrays created from images to be fed to a neural net. If I have a directory of images to predict, I should be able to loop through the directory, get image data and create an (n,30,30) shape np array
This is my current method, I intend to reshape each row before feeding to the model



def get_image_vectors(path):
img_list=os.listdir(path)
print(img_list)
X=np.empty((900,))
for img_file in img_list:
img= Image.open(os.path.join(path,img_file))
img_grey= img.convert("L")
resized = img_grey.resize((30,30))
flattened = np.array(resized.getdata())
# print(flattened.shape)
X=np.vstack((X,flattened))
print(img_file,'=>',X.shape)
return X[1:,:]









share|improve this question

























  • So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

    – hpaulj
    Nov 27 '18 at 21:25














0












0








0








For example I need 30x30 numpy arrays created from images to be fed to a neural net. If I have a directory of images to predict, I should be able to loop through the directory, get image data and create an (n,30,30) shape np array
This is my current method, I intend to reshape each row before feeding to the model



def get_image_vectors(path):
img_list=os.listdir(path)
print(img_list)
X=np.empty((900,))
for img_file in img_list:
img= Image.open(os.path.join(path,img_file))
img_grey= img.convert("L")
resized = img_grey.resize((30,30))
flattened = np.array(resized.getdata())
# print(flattened.shape)
X=np.vstack((X,flattened))
print(img_file,'=>',X.shape)
return X[1:,:]









share|improve this question
















For example I need 30x30 numpy arrays created from images to be fed to a neural net. If I have a directory of images to predict, I should be able to loop through the directory, get image data and create an (n,30,30) shape np array
This is my current method, I intend to reshape each row before feeding to the model



def get_image_vectors(path):
img_list=os.listdir(path)
print(img_list)
X=np.empty((900,))
for img_file in img_list:
img= Image.open(os.path.join(path,img_file))
img_grey= img.convert("L")
resized = img_grey.resize((30,30))
flattened = np.array(resized.getdata())
# print(flattened.shape)
X=np.vstack((X,flattened))
print(img_file,'=>',X.shape)
return X[1:,:]






python arrays numpy






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 27 '18 at 20:19









TeeKea

3,22851832




3,22851832










asked Nov 27 '18 at 19:50









Amal JossyAmal Jossy

612




612













  • So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

    – hpaulj
    Nov 27 '18 at 21:25



















  • So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

    – hpaulj
    Nov 27 '18 at 21:25

















So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

– hpaulj
Nov 27 '18 at 21:25





So what's your question? Do you realize that each call to vstack makes a new array? vstack works just as well, if not better, with a list of many arrays. Notice also that you have to play funny games to get things started, defining that "empty' array (which isn't at all like list ) and then 'delete' it with [1:].

– hpaulj
Nov 27 '18 at 21:25












1 Answer
1






active

oldest

votes


















3














Instead of appending to an existing array, it will probably be better to use a list initially, appending to it, and converting to an array at the end. thus saving many redundant modifications of np arrays.



Here a toy example:



import numpy as np

def get_image_vectors():
X= #Create empty list
for i in range(10):
flattened = np.zeros(900)
X.append(flattened) #Append some np array to it
return np.array(X) #Create array from the list


With result:



array([[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])





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',
    autoActivateHeartbeat: false,
    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
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53507097%2fhow-to-append-nd-numpy-arrays-to-n1d-numpy-array-through-loop%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    Instead of appending to an existing array, it will probably be better to use a list initially, appending to it, and converting to an array at the end. thus saving many redundant modifications of np arrays.



    Here a toy example:



    import numpy as np

    def get_image_vectors():
    X= #Create empty list
    for i in range(10):
    flattened = np.zeros(900)
    X.append(flattened) #Append some np array to it
    return np.array(X) #Create array from the list


    With result:



    array([[0., 0., 0., ..., 0., 0., 0.],
    [0., 0., 0., ..., 0., 0., 0.],
    [0., 0., 0., ..., 0., 0., 0.],
    ...,
    [0., 0., 0., ..., 0., 0., 0.],
    [0., 0., 0., ..., 0., 0., 0.],
    [0., 0., 0., ..., 0., 0., 0.]])





    share|improve this answer




























      3














      Instead of appending to an existing array, it will probably be better to use a list initially, appending to it, and converting to an array at the end. thus saving many redundant modifications of np arrays.



      Here a toy example:



      import numpy as np

      def get_image_vectors():
      X= #Create empty list
      for i in range(10):
      flattened = np.zeros(900)
      X.append(flattened) #Append some np array to it
      return np.array(X) #Create array from the list


      With result:



      array([[0., 0., 0., ..., 0., 0., 0.],
      [0., 0., 0., ..., 0., 0., 0.],
      [0., 0., 0., ..., 0., 0., 0.],
      ...,
      [0., 0., 0., ..., 0., 0., 0.],
      [0., 0., 0., ..., 0., 0., 0.],
      [0., 0., 0., ..., 0., 0., 0.]])





      share|improve this answer


























        3












        3








        3







        Instead of appending to an existing array, it will probably be better to use a list initially, appending to it, and converting to an array at the end. thus saving many redundant modifications of np arrays.



        Here a toy example:



        import numpy as np

        def get_image_vectors():
        X= #Create empty list
        for i in range(10):
        flattened = np.zeros(900)
        X.append(flattened) #Append some np array to it
        return np.array(X) #Create array from the list


        With result:



        array([[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]])





        share|improve this answer













        Instead of appending to an existing array, it will probably be better to use a list initially, appending to it, and converting to an array at the end. thus saving many redundant modifications of np arrays.



        Here a toy example:



        import numpy as np

        def get_image_vectors():
        X= #Create empty list
        for i in range(10):
        flattened = np.zeros(900)
        X.append(flattened) #Append some np array to it
        return np.array(X) #Create array from the list


        With result:



        array([[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]])






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 27 '18 at 20:33









        DinariDinari

        1,669522




        1,669522
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • 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.


            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%2fstackoverflow.com%2fquestions%2f53507097%2fhow-to-append-nd-numpy-arrays-to-n1d-numpy-array-through-loop%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

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

            Calculate evaluation metrics using cross_val_predict sklearn

            Insert data from modal to MySQL (multiple modal on website)