numpy.delete
. It allows users to remove elements from an array based on specified indices. This blog post aims to provide a detailed overview of numpy.delete
, including its fundamental concepts, usage methods, common practices, and best practices.numpy.delete
numpy.delete
The numpy.delete
function is used to return a new array with sub - arrays along a specified axis deleted. The function takes three main parameters:
arr
: The input array from which elements are to be deleted.obj
: Can be an integer, a list of integers, or a slice object. It specifies the indices of the elements to be removed.axis
: An optional parameter that specifies the axis along which to delete the elements. If not provided, the array is flattened before deletion.The original array remains unchanged, and a new array is returned with the specified elements removed.
import numpy as np
# Create a 1-D array
arr = np.array([10, 20, 30, 40, 50])
# Delete the element at index 2
new_arr = np.delete(arr, 2)
print("Original array:", arr)
print("New array after deletion:", new_arr)
In this example, we create a 1 - D array and use numpy.delete
to remove the element at index 2. The original array remains intact, and a new array without the specified element is returned.
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
# Delete elements at indices 1 and 3
indices = [1, 3]
new_arr = np.delete(arr, indices)
print("Original array:", arr)
print("New array after deletion:", new_arr)
Here, we pass a list of indices to numpy.delete
to remove multiple elements from the 1 - D array.
import numpy as np
# Create a 2-D array
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Delete the second row (index 1)
new_arr = np.delete(arr, 1, axis = 0)
print("Original array:")
print(arr)
print("New array after deletion:")
print(new_arr)
In this case, we use the axis
parameter to specify that we want to delete a row (along axis 0) from the 2 - D array.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Delete elements from index 2 to 5 (exclusive)
new_arr = np.delete(arr, slice(2, 5))
print("Original array:", arr)
print("New array after deletion:", new_arr)
Slices are a convenient way to specify a range of indices to be deleted from an array.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Delete the second column (index 1)
new_arr = np.delete(arr, 1, axis = 1)
print("Original array:")
print(arr)
print("New array after deletion:")
print(new_arr)
This example shows how to delete a column (along axis 1) from a 2 - D array.
Since numpy.delete
returns a new array, be cautious when working with large arrays as it can consume a significant amount of memory. If possible, try to perform in - place operations or use other array manipulation techniques that don’t require creating a new array.
Before using numpy.delete
, make sure that the indices you provide are within the valid range of the array. Otherwise, it will raise an IndexError
.
import numpy as np
arr = np.array([1, 2, 3])
try:
new_arr = np.delete(arr, 5)
except IndexError:
print("Index out of range. Please check your indices.")
The numpy.delete
function is a valuable tool for removing elements from NumPy arrays. By understanding its fundamental concepts, usage methods, common practices, and best practices, you can efficiently manipulate arrays according to your needs. Remember to handle memory usage carefully, especially when dealing with large arrays, and always validate your indices to avoid errors.