The insert()
method adds the values along the given axis at specified indices.
import numpy as np
# create an array
numbers = np.array([0, 1, 3, 4])
# insert 4 at index 2
array2 = np.insert(numbers, 2, 4)
print(array2)
# Output : [0 1 4 3 4]
Here, the insert()
method inserted a new item 4 to the index 2, and shifted the previous item to the next index.
insert() Syntax
The syntax of insert()
is:
numpy.insert(array, obj, values, axis)
insert() Arguments
The insert()
method takes four arguments:
array
- original arrayobj
- indices at which values are insertedvalues
- the array to be inserted at the given positionaxis
(optional) - the axis along which the values are inserted
insert() Return Value
The insert()
method returns an array with values inserted.
Example 1: Insert an Array at Given Index
import numpy as np
array1 = np.array([0, 1, 2, 3])
array2 = np.array([4, 5, 6, 7])
# insert values from array2 to array1 before index 2
array3 = np.insert(array1, 2, array2)
print(array3)
Output
[0 1 4 5 6 7 2 3]
Example 2: Insert an Array Element at Different Indices
We can insert different values at different indices.
import numpy as np
array1 = np.array([0, 1, 2, 3])
array2 = np.array([4, 5, 6, 7])
# insert values from array2 to array1 before given indices
array3 = np.insert(array1, [2, 3, 2, 1], array2)
print(array3)
Output
[0 7 1 4 6 2 5 3]
Note: When passing a sequence as obj
, the size of the sequence should match the size of the values. For example, when inserting 4 values, 4 indices should be provided.
Example 3: Insert into a 2-D Array Before Given Index
Similar to a 1-D array, values can be inserted to a 2-D array at any index along any axis.
import numpy as np
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([4, 5])
# insert values to an array before index 2
array3 = np.insert(array1, 2, array2)
print('\nInsert to 2D array at index 2\n', array3)
# insert values to an array before index 2 along axis 0
array4 = np.insert(array1, 2, array2, 0)
print('\nInsert to 2D array at row 2\n', array4)
# insert values to an array before index 2 along axis 1
array5 = np.insert(array1, 2, array2, 1)
print('\nInsert to 2D array at column 2\n', array5)
Output
Insert to 2D array at index 2 [0 1 4 5 2 3] Insert to 2D array at row 2 [[0 1] [2 3] [4 5]] Insert to 2D array at column 2 [[0 1 4] [2 3 5]]
Note: If the axis is not provided, the array is flattened.
Example 3: Insert into a 2-D array Before Given Indices
import numpy as np
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([4, 5])
# insert elements from array2 before indices 0 and 1 of array1
array3 = np.insert(array1, [0, 1], array2)
print('\nInsert to 2D array before indices 0 and 1\n', array3)
# insert elements from array2 before row 0 and row 1 of array1 along axis 0
array4 = np.insert(array1, [0, 1], array2, axis=0)
print('\nInsert to 2D array before row 0 and row 1 along axis 0\n', array4)
# insert elements from array2 before column 0 and column 1 of array1 along axis 1
array5 = np.insert(array1, [0, 1], array2, axis=1)
print('\nInsert to 2D array before column 0 and column 1 along axis 1\n', array5)
Output
Insert to 2D array before indices 0 and 1 [4 0 5 1 2 3] Insert to 2D array before row 0 and row 1 along axis 0 [[4 5] [0 1] [4 5] [2 3]] Insert to 2D array before column 0 and column 1 along axis 1 [[4 0 5 1] [4 2 5 3]]