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.
Related videos on Youtube
Author by
mm_
One part scientist, one part entrepreneur, one part programmer.
Updated on November 22, 2020Comments
-
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 over 11 years
-
DaveP over 11 yearsAs @BrenBarn points out, there is no reason to use
numpy.append
here. The most efficient thing to do is initially allocater
tolen(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.
-