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.
- 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.
Founder of DelftStack.com. 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