NumPy Array Append

Numpy as 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.