Python NumPy delete()
function is used to delete elements based on index positions, and it returns a new array with the specified elements removed. For a one-dimensional array, this function returns those entries not returned by arr[obj].
In this article, I will explain how to use the NumPy delete()
function to return a new array with the specified subarray deleted from the input array. If the axis parameter is not used then the input array is flattened.
1. Quick Examples of NumPy delete() Function
If you are in a hurry, below are some quick examples of how to use Python NumPy delete()
function.
# Quick examples of numpy delete() function
# Example 1: Using delete()
# To delete the index=2
arr=np.arange(10)
arr1=np.delete(arr,2)
# Example 2: Using list of values
arr1=np.delete(arr,[4,1])
# Example 3: Using delete()
# To delete the obj=1, axis=0
arr=np.arange(12).reshape(3,4)
arr1=np.delete(arr, 1 , axis = 0)
# Example 4: Using delete() function
# To delete the obj=2,axis=1
arr1=np.delete(arr, 2 , axis = 1)
# Example 5: Using delete() function
# To delete the index=1
arr1=np.delete(arr, 0,axis = None )
# Example 6: Delete multiple rows
arr1=np.delete(arr,[0,1,2],axis=0)
# Example 7: Delete multiple columns
arr1=np.delete(arr,[0,1,2],axis=1)
# Example 8: Delete multiple columns
# Using slice operation
arr1 = np.delete(arr, slice(2), 1)
# Example 9: Delete multiple rows
# Using numpy.s_[]
arr1 = np.delete(arr, np.s_[:2],axis= 0)
2. Syntax of NumPy delete()
Following is the syntax of the numpy.delete() function.
# Syntax of numpy.delete()
numpy.delete(arr, obj, axis=None)
2.1 Parameters of delete()
Following are the Parameters delete()
arr
: The input array from which elements will be deleted.obj
: Index position or list of index positions of items to be deleted from the input array.axis
: Axis along which you want to delete. If it is'1'
then delete columns, or'0'
then delete rows. If the axis isNone
then return the flattened array.
2.2 Return value of delete()
Returns a new array with the deletion of sub-arrays along with the specified axis. If the axis is None
then return the flattened array.
3. Usage of NumPy delete() Function
Using NumPy delete()
function you can delete elements from the NumPy array and delete specified rows and columns from the 2-D array along with the specified axis. It returns a new array with sub-arrays along an axis deleted. For a 1D array, it just deletes the object which you want to delete.
The numpy.delete()
function is used to delete specified elements from an array along a specified axis. It returns a new array with the specified elements removed.
3.1 Deleting an Element from a 1D Array
You can use the numpy.delete()
function to remove an element from a 1D NumPy array. First, you have to initialize an array using numpy.arange(10)
, which generates an array of integers from 0 to 9.
The np.delete()
function is used to delete the element at index 2 from the original array (arr
). The result is stored in the variable arr1
, and the modified array is printed. The element at index 2 (value 2) has been removed, and the resulting array is stored in arr1
. The original array arr
remains unchanged.
# Import numpy
import numpy as np
# Create an array
arr = np.arange(10)
print("Original array:\n", arr)
# Using delete() function
# Delete element at index 2
arr1 = np.delete(arr, 2)
print("Array after deleting element at index 2:\n",arr1)
Yields below output.
3.2 Deleting Multiple Elements from a 1D Array
You can also use the numpy.delete()
function to delete multiple elements from a 1D NumPy array. First, you have to initialize an array using numpy.arange(10)
, which generates an array of integers from 0 to 9.
Here, the np.delete()
function is used to delete elements at indices 4 and 1 from the original array arr
. The resulting array is stored in arr1
, and both the original and modified arrays are printed.
# Using list of values
arr1=np.delete(arr,[4,1])
print("Array after deleting elements at indices 4 and 1:\n",arr1)
Yields below output.
It shows that the elements at indices 4 and 1 have been successfully removed from the original array, resulting in the modified array arr1
.
4. Delete Row From 2-D Array along Axis = 0
Using numpy.delete()
function, you can delete any row and column from the 2-D NumPy array along with the specified axis, for that we have to initialize the 2-D NumPy array using numpy.arange()
and get the reshape using numpy.reshape().
For example, to delete the second row, use obj=1
,axis=0
as arguments to numpy.delete()
function. The original array remains unchanged, and a new copy of the NumPy array is returned.
# Create an 2-D array using arange() & reshape()
arr=np.arange(12).reshape(3,4)
print(arr)
# Output:
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# Using delete() to delete the 2nd row
arr1=np.delete(arr, 1 , axis = 0)
print(arr1)
# Output :
# [[ 0 1 2 3]
# [ 8 9 10 11]]
# Using delete() to delete the 3rd row
arr1=np.delete(arr, 2 , axis = 0)
print(arr1)
# Output :
# [[0 1 2 3]
# [4 5 6 7]]
5. Delete Column From 2-D Arrays along Axis = 1
You can delete an entire column from the 2-D array using numpy.delete()
function. For instance, to delete the third column, use obj=2
, axis=1
argument to numpy.delete()
function. The original array remains unchanged, and a new copy of the NumPy array is returned.
# Using delete() to delete 2nd column
arr1=np.delete(arr, 2 , axis = 1)
print(arr1)
# Output :
# [[ 0 1 3]
# [ 4 5 7]
# [ 8 9 11]]
# Using delete() to delete 1st column
arr1=np.delete(arr, 0 , axis = 1)
print(arr1)
# Output :
# [[ 1 2 3]
# [ 5 6 7]
# [ 9 10 11]]
6. Delete Elements From 2-D Arrays along Axis = None
You can get the flattened array from the 2-D array using numpy.divide()
along with default axis=None
. For instance, you want to remove the ‘0’ based index as an object along with the default axis using numpy.divide()
.
# Using delete() to delete the index=1
arr1=np.delete(arr, 0,axis = None )
print(arr1)
# Output :
# [ 1 2 3 4 5 6 7 8 9 10 11]
7. Delete Multiple Rows and Columns
Multiple rows and columns can be removed at once by specifying the list or a slice in the second parameter obj. You can delete multiple rows and columns at once using the following ways.
Using list
By using slicing
numpy.s_[] Function
7.1 Using List to Delete Multiple Rows & Columns
Using the list of values as an object parameter of numpy.divide()
function you can delete Multiple columns or multiple rows at a time along with a specified axis. If you use the default axis it will give a flattened array.
# Delete multiple rows
arr1=np.delete(arr,[0,1,2],axis=0)
print(arr1)
# Output:
# [[ 8 9 10 11]]
# Delete multiple columns
arr1=np.delete(arr,[0,1,2],axis=1)
print(arr1)
# Output:
# [[ 3]
# [ 7]
# [11]]
# Use numpy.delete() along axis = None
arr1 = np.delete(arr, [1, 2], None)
print(arr1)
# Output:
# [0 3 4 5 6 7 8 9 10 11]
7.2 Use Slicing Operation to Delete Multiple Rows & Columns
It is also possible to specify the multiple rows and columns by using the slice specifying a range with [start: stop: step]
. Create a slice object with a slice()
and specify it as a second parameter obj
.
It is equivalent to [: stop]
if there is a single argument [start:stop]
if there are two arguments, and [start: stop: step]
if there are three arguments. If you want to omit, specify None explicitly.
# Delete multiple columns using slice operation
arr1 = np.delete(arr, slice(2), 1)
print(arr1)
# Output:
# [[ 2 3]
# [ 6 7]
# [10 11]]
7.3. Use numpy.s_[] Function
You can also delete multiple columns and multiple rows along with specified axis using numpy.s_[]
. Let’s remove the first and second columns along with axis=0
using np.s_[]
function, this function you can write in a form [start:stop:step]
. Remember array index starts from 0.
# Delete multiple rows using numpy.s_[]
arr1 = np.delete(arr, np.s_[:2],axis= 0)
print(arr1)
# Output:
# [[ 8 9 10 11]]
Frequently Asked Questions
The numpy.delete()
function in NumPy is used to delete specified elements along a particular axis from an array. It returns a new array with the specified elements removed, without modifying the original array.
You can use numpy.delete()
to delete elements from a multi-dimensional array. When working with multi-dimensional arrays, you need to specify the axis along which the deletion should occur.
To use numpy.delete()
to remove a specific element from an array, you need to provide the array, the index of the element you want to delete, and optionally the axis along which the deletion should occur.
The numpy.delete()
function does not modify the original array. Instead, it returns a new array with the specified elements removed. This behavior is consistent with the general philosophy of NumPy, which aims to avoid modifying arrays in place to prevent unintended side effects.
To delete an entire row or column from a 2D array using numpy.delete()
, you can specify the index of the row or column along with the appropriate axis
parameter. Here are examples for deleting a row and a column
If you set axis=None
in the numpy.delete()
function, it means that the array will be flattened before deletion. This implies that all elements specified in the obj
parameter will be removed from the flattened version of the array.
Conclusion
In this article, I have explained how to use numpy.delete()
function that returns a new array with the specified subarray deleted from the input array with examples.
Happy Learning!!
Related Articles
- How to convert NumPy array to list
- NumPy Array Addition
- How to Slice NumPy Array?
- Python NumPy Array Reshape
- Get NumPy Array Length
- NumPy Count Nonzero Values in Python
- Python NumPy Absolute Value
- Python NumPy repeat() Function
- Python NumPy Reverse Array
- How to Calculate minimum() of Array in NumPy?
- How to create NumPy array in different ways
- Python NumPy Split Array – Using split() Function