numpy.insert python prepend element to numpy array with axis parameter
numpy has an insert
function that's accesible via numpy.insert
referto its document.
Let’s have a look at this code in Jupyter python:
You can try this code
import numpy as np
a = np.array([[1, 11], [2, 22], [3, 33]])
print('Original array:')
print(a)
print()print("axis=1")
x= np.insert(a, 0, 6, axis=1)
print(x)
print()print("axis=0")
x= np.insert(a, 2, 5, axis=0)
print(x)
The output will be:
What is axis in numpy.insert actually?
Here the original array is a matrix with two dimensions:
In this case the axis=0 means we want to insert a row and if axis=1 it means we want to insert a column.
The argument axis=
specifies that the insertion should happen as a column or row.
Attention:
- row index 0 = [1 11]
- row index 1 = [2 22]
- row index 2 = [3 33]
- column index 0 = 1 2 3 sorry for this presentation, you understand that it is a column
- column index 1 = 11 22 33
Now lets look at the numpy.insert parameters command again
and
Explaining parameters of python numpy.insert:
- As you see the first argument
a
specifies the object (original array) to be inserted into. - The second argument specifies where we want to insert. ( before which index of original array, regarding we want to insert as column or row )
- The third argument specifies what is to be inserted.
In General form numpy.insert has this form:
numpy.insert(arr, obj, values, axis)
where:
arr : Input array
obj : The index before which insertion is to be made
values : The array of values to be inserted. It can be also one number or array of numbers
axis : The axis along which to insert. If not given, the input array is flattened
Let’s try when values in the paramenters is an array like:
This code:
print("axis=0")
x= np.insert(a, 2, [40,70], axis=0)
print(x)
the results will be:
Let’s try numpy.insert without passing axis!
x= np.insert(a, 2, [40,70])
print(x)
results:
axis=null
[ 1 11 40 70 2 22 3 33]
As you see if axis is not given, the input array is flattened.
An alternative solution is using:
x = np.c_[np.ones((100,1)),x]