numpy.insert python prepend element to numpy array with axis parameter

Panjeh
3 min readApr 4, 2020

--

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]

--

--

Panjeh
Panjeh

Written by Panjeh

Posting about Python and Laravel

No responses yet