NumPy Tutorial - NumPy Array Append

Jinku Hu Jun 25, 2020
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\ 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.

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook