Skip to Content

Numpy – Replace All NaN Values with Ones

In this tutorial, we will look at how to replace all occurrences of NaN values in a Numpy array with ones with the help of some examples.

How do I replace all NaN with 1 in Numpy?

replace all nan values in numpy array with ones

Use boolean indexing to replace all instances of NaN in a Numpy array with ones. Here, we use the numpy.isnan() function to check whether a value inside the array is NaN or not, and if it is, we set it to one.

The following is the syntax –

import numpy as np
ar[np.isnan(ar)] = 1

Let’s now look at a step-by-step example of using the above syntax on a Numpy array.

Step 1 – Create a Numpy array

First, we will create a one-dimensional array that we will be using throughout this tutorial.

import numpy as np

# create numpy array
ar = np.array([1, 2, np.nan, 3, 4, np.nan, np.nan, 5])
# display the array
ar

Output:

array([ 1.,  2., nan,  3.,  4., nan, nan,  5.])

Here, we used the np.array() function to create a Numpy array with some numbers and some NaN values.

Step 2 – Set NaN values in the array to 1 using boolean indexing

Use the numpy.isnan() function to check whether a value in the array is NaN or not. If it is, set it to one.

Let’s replace all occurrences of NaN in the above array with 1.

# replace nan with ones
ar[np.isnan(ar)] = 1
# display the array
ar

Output:

array([1., 2., 1., 3., 4., 1., 1., 5.])

You can see that each instance of NaN has been replaced by a 1 in the above array. Note that here we are modifying the original array.

You can also use this method to replace NaN values with 1s in higher-dimensional arrays. For example, let’s apply this method to a two-dimensional array containing some NaN values.

# create a 2D numpy array
ar = np.array([
    [1, np.nan, 2],
    [np.nan, 3, 4],
    [5, np.nan, np.nan]
])
# display the array
ar

Output:

array([[ 1., nan,  2.],
       [nan,  3.,  4.],
       [ 5., nan, nan]])

Here, we created a 2D Numpy array containing some NaN values.

Let’s now replace the NaN values in this 2D array with 1s.

# replace nan with ones
ar[np.isnan(ar)] = 1
# display the array
ar

Output:

array([[1., 1., 2.],
       [1., 3., 4.],
       [5., 1., 1.]])

The array now has 1s in place of NaNs.

You can similarly use this method to replace NaN values in a Numpy array with any other value.

Summary – Replace NaN values in Numpy array with ones

In this tutorial, we looked at how to replace all NaN values in a Numpy array with ones. The following is a short summary of the steps mentioned in this tutorial.

  1. Create a Numpy array (skip this step if you already have an array to operate on).
  2. Use the numpy.isnan() function to check whether a value in the array is NaN or not. If it is, set it to 1 using boolean indexing ar[np.isnan(ar)] = 1

You might also be interested in –


Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.


Author

  • Piyush is a data scientist passionate about using data to understand things better and make informed decisions. In the past, he's worked as a Data Scientist for ZS and holds an engineering degree from IIT Roorkee. His hobbies include watching cricket, reading, and working on side projects.