Delete Row from NumPy Array that contains a specific value

In this tutorial, we will be learning how to delete a row from Numpy array that contains a specific value in Python. (Numerical Python).
You may be thinking, “This looks so easy”. Yes, You may feel that way but it is a bit tricky while programming and for that, you need to be aware of some NumPy array functions. If you are not aware, relax, because I will cover those for you. So let’s get started.

Remove row from NumPy Array containing a specific value in Python

First of all, we need to import NumPy in order to perform the operations.

import numpy as np

You may or may not write “as Your_name“. It is done so that we do not have to write numpy again and again in our code. Your_name can be anything you like.

Next, Using numpy, we need to create a 2D array, which is nothing but multiple lists and we need to store our array in a variable let’s say arr.

arr=np.array([[1,2,3],[4,5,6],[7,8,9]])

array() is a function used to create array which contains multiple lists separated by comma. If you do not know about creating 2D lists in python, learn here.
Now, lets declare a variable var that contains the value whose row is to be deleted.

var=3

Now, We need to iterate the array arr to find our value inside it. This can be done as follows.

for i in range(0,2):
    for x in arr[i]:
        if(x==val):

After we find the value, we need to delete the containing row. For that, we use delete() function that takes 3 arguments.

  1. Array_name
  2. Index of containing list.
  3. axis (If we do not mention axis then our list gets flattened i.e, Converts into 1D array)

if axis=0, it means we are choosing row-wise deletion and if axis=1, then it means column wise deletion.
Let’s see how to do it.

if(x==val):
            arr=np.delete(arr,i,0)

We modified our existing array arr with the new array which does not has the row containing the value var=3.
Alternatively, you can name your new array something else.

So, now we have an array which does not has the row containing the value 3

finally, we print our array to see the required output.

print(arr)

Let’s see how our code looks like.

import numpy as np
arr=np.array([[1,2,3],[4,5,6],[7,8,9]])
val=3
for i in range(0,2):
    for x in arr[i]:
        if(x==val):
            arr=np.delete(arr,i,0)
print(arr)

Output:

[[4 5 6]
 [7 8 9]]

 

Also, learn

2 responses to “Delete Row from NumPy Array that contains a specific value”

  1. Rajesh Singh says:

    Nicely explained, was looking for the same stuff

  2. Nitesh Jhawar says:

    I’m glad you found it helpful.

Leave a Reply

Your email address will not be published. Required fields are marked *