Open In App

How to delete last N rows from Numpy array?

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will discuss how to delete the last N rows from the NumPy array.

Method 1: Using Slice Operator

Slicing is an indexing operation that is used to iterate over an array.

 Syntax: array_name[start:stop]

where start is the start is the index and stop is the last index.

We can also do negative slicing in Python. It is denoted by the below syntax.

Syntax: array_name[: -n]

where, n is the number of rows from last to be deleted.

Example1:

We are going to create an array with 6 rows and 3 columns and delete last N rows using slicing.

Python3




# importing numpy module
import numpy as np
  
# create an array with 6 rows and 3 columns
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], 
              [10, 11, 12], [13, 14, 15], [16, 17, 18]])
  
print(a)
  
# delete last 1 st row
print("data after deleting last one row ", a[:-1])
  
# delete last 2 nd  row
print("data after deleting last two  rows ", a[:-2])
  
# delete last 3 rd  row
print("data after deleting last theww  rows ", a[:-3])
  
# delete last 4 th  row
print("data after deleting last four  rows ", a[:-4])
  
# delete last 5 th  row
print("data after deleting last five  rows ", a[:-5])
  
# delete last 6 th  row
print("data after deleting last six  rows ", a[:-6])


Output:

Example 2: 

We use for loop to iterate over the elements and use the slice operator, we are going to delete the data and then print the data.

Python3




# importing numpy module
import numpy as np
  
# create an array with 5 rows and 
# 4 columns
a = np.array([[21, 7, 8, 9], [34, 10, 11, 12], 
              [1, 3, 14, 15], [1, 6, 17, 18], 
              [4, 5, 6, 7]])
  
# use for loop to iterate over the
# elements
for i in range(1, len(a)+1):
    print("Iteration No", i, "deleted", i, "Rows")
    print("Remaining data present in the array is\n ", a[:-i])


Output:

Example 3:

We can also specify the elements that we need and store them into another array variable using the slice operator. In this way, we will not get the last N rows (delete those).

Python3




# importing numpy module
import numpy as np
  
# create an array with 5 rows and 
# 4 columns
a = np.array([[21, 7, 8, 9], [34, 10, 11, 12], 
              [1, 3, 14, 15], [1, 6, 17, 18],
              [4, 5, 6, 7]])
  
# place first 2 rows in b variable 
# using slice operator
b = a[:2]
  
print(b)


Output:

[[21  7  8  9]
 [34 10 11 12]]

Method 2: Using numpy.delete() method

It is used to delete the elements in a NumPy array based on the row number.

Syntax: numpy.delete(array_name,[rownumber1,rownumber2,.,rownumber n],axis)

Parameters:

  • array_name is the name of the array.
  • row numbers is the row values
  • axis specifies row or column
    • axis=0 specifies row
    • axis=1 specifies column

Here we are going to delete the last rows so specify the rows numbers in the list.

Example 1: Delete last three rows

Python3




# importing numpy module
import numpy as np
  
# create an array with 5 rows and 
# 4 columns
a = np.array([[21, 7, 8, 9], [34, 10, 11, 12], 
              [1, 3, 14, 15], [1, 6, 17, 18], 
              [4, 5, 6, 7]])
  
# delete last three rows
# using numpy.delete
a = np.delete(a, [2, 3, 4], 0)
print(a)


Output:

[[21  7  8  9]
 [34 10 11 12]]

Example 2: Delete all rows

Python3




# importing numpy module
import numpy as np
  
# create an array with 5 rows and 4 columns
a = np.array([[21, 7, 8, 9], [34, 10, 11, 12], 
              [1, 3, 14, 15], [1, 6, 17, 18], 
              [4, 5, 6, 7]])
  
# delete last three rows
# using numpy.delete
a = np.delete(a, [0, 1, 2, 3, 4], 0)
print(a)


Output:

[ ]


Last Updated : 28 Apr, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads