How to use the function numpy.append

25,027

Unlike the list append method, numpy's append does not append in-place. It returns a new array with the extra elements appended. So you'd need to do r = np.append(r, float(line[index])).

Building up numpy arrays in this way is inefficient, though. It's better to just build your list as a Python list and then make a numpy array at the end.

Share:
25,027

Related videos on Youtube

mm_
Author by

mm_

One part scientist, one part entrepreneur, one part programmer.

Updated on November 22, 2020

Comments

  • mm_
    mm_ over 3 years

    I have a problem using the function numpy.append. I wrote the following function as part of a larger piece of code, however, my error is reproduced in the folowing:

    data = [
             [
              '3.5', '3', '0', '0', '15', '6', 
              '441', 'some text', 'some more complicated data'
             ], 
             [
              '4.5', '5', '1', '10', '165', '0', 
              '1', 'some other text', 'some even more complicated data'
             ]
           ]
    
    def GetNumpyArrey(self, index):
        r = np.array([])
        for line in data:
            np.append(r, float(line[index]))
    
        print r
    

    index < 6. the result is:

    >> []
    

    what am I doing wrong?

    Thanks a lot !

    • avasal
      avasal over 11 years
    • DaveP
      DaveP over 11 years
      As @BrenBarn points out, there is no reason to use numpy.append here. The most efficient thing to do is initially allocate r to len(data). If you don't know the length in advance (e.g. reading from a file), then @BrenBarn's suggestion of creating a list and converting to an array is best.