In this tutorial, we will look at how to replace all occurrences of NaN values in a Numpy array with zeros with the help of some examples.
How do I replace all NaN with 0 in Numpy?

Use boolean indexing to replace all instances of NaN in a Numpy array with zeros. 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 zero.
The following is the syntax –
import numpy as np ar[np.isnan(ar)] = 0
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 0 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 zero.
Let’s replace all occurrences of NaN in the above array with 0.
# replace nan with zeros ar[np.isnan(ar)] = 0 # display the array ar
Output:
array([1., 2., 0., 3., 4., 0., 0., 5.])
You can see that each instance of NaN has been replaced by a 0 in the above array. Note that here we are modifying the original array.
You can also use this method to replace NaN values with 0s 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 0s.
# replace nan with zeros ar[np.isnan(ar)] = 0 # display the array ar
Output:
array([[1., 0., 2.], [0., 3., 4.], [5., 0., 0.]])
The array now has 0s 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 zeros
In this tutorial, we looked at how to replace all NaN values in a Numpy array with zeros. The following is a short summary of the steps mentioned in this tutorial.
- Create a Numpy array (skip this step if you already have an array to operate on).
- Use the
numpy.isnan()
function to check whether a value in the array is NaN or not. If it is, set it to 0 using boolean indexingar[np.isnan(ar)] = 0
You might also be interested in –
- Get the k largest values in a Numpy Array
- Get the Most Frequent Value in Numpy Array
- Sort Numpy Array in Descending Order
Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.