Numpy Tutorial - NumPy Array Append

Numpy has also append function to append data to array, just like append operation to list in Python. But in some cases, append in NumPy is also a bit similar to extend method in Python list.

Array append

Let’s first list the syntax of ndarray.append.

numpy.append(arr, values, axis = None)
  • Input Parameters
parameter name type of data Description
arr array_like An array to add an element
values array_like Array added
axis INT The axis along which values are appended.

Let’s make some examples,

In [1]: import numpy as np
        arrayA = np.arange(12).reshape(3, 4)
        arrayB = np.ones((1, 4))
        np.append(arrayA, arrayB)
        
Out[1]: array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11.,  1.,
        1.,  1.,  1.])

When axis is not given, both arr and values are flattened before operation. The result will be a 1-D array. In the example above, we don’t need to care about the shape of two given arrays.

In [2]: np.append(arrayA, arrayB, axis=0)
Out[2]: array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.],
       [ 8.,  9., 10., 11.],
       [ 1.,  1.,  1.,  1.]])
In [2]: np.append(arrayA, np.ones((1, 3)), axis=0)
        ---------------------------------------------------------------------------
        ValueError                                Traceback (most recent call last)
        <ipython-input-25-fe0fb14f5df8> in <module>()
        ----> 1 np.append(arrayA, np.ones((1, 3)), axis=0)

        D:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\function_base.py in append(arr, values, axis)
           5164         values = ravel(values)
           5165         axis = arr.ndim-1
        -> 5166     return concatenate((arr, values), axis=axis)

        ValueError: all the input array dimensions except for the concatenation axis must match exactly

When axis is equal to 0, array values will be appended to arr in the direction of column. It will raises the ValueError if two given arrays don’t have the same length in the row - ValueError: all the input array dimensions except for the concatenation axis must match exactly.

You could try by yourself to append the data in the row direction with the parameter axis=1.

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.