The Numpy library in Python comes with a number of built-in functions to manipulate the data in arrays. In this tutorial, we will look at a function that helps us set all the values in a Numpy array to nan.
How to set all values to nan in Numpy?

You can use the numpy.ndarray.fill()
function to set all the values in a Numpy array to nan. Pass numpy.nan
as the argument (this is the value used to fill all the values in the array).
The following is the syntax –
# set all values in numpy array ar to nan ar.fill(np.nan)
It modifies the array in-place, filling each value with nan (the passed value).
Let’s now look at a step-by-step example of using the above function.
Step 1 – Create a Numpy array
First, we will create a Numpy array that we will use throughout this tutorial.
import numpy as np # create a numpy array ar = np.array([-2, -1, 0, 1, 2, 3, -4.1]) # display the array print(ar)
Output:
[-2. -1. 0. 1. 2. 3. -4.1]
Here, we used the numpy.array()
function to create a Numpy array containing some numbers.
Step 2 – Set each value to nan using numpy.ndarray.fill()
Apply the numpy.ndarray.fill()
function on the array and pass numpy.nan
as the parameter to set each value to nan in the array.
Let’s apply this function to the array created above.
# set all values to nan ar.fill(np.nan) # display the array ar
Output:
array([nan, nan, nan, nan, nan, nan, nan])
You can see that each value in the array ar
is now nan.
Note that if all the values in the array are of integer type, using the above method will fill the array with zeros instead of nans.
# create a numpy array ar = np.array([-2, -1, 0, 1, 2, 3, -4]) # set all values to nan ar.fill(np.nan) # display the array ar
Output:
array([0, 0, 0, 0, 0, 0, 0])
This happens because np.nan
is of float
type which is being used to fill an integer array.
In order to prevent this behavior and fill the array with nans, first convert the array to float
type and then apply the numpy.ndarray.fill()
function.
# create a numpy array ar = np.array([-2, -1, 0, 1, 2, 3, -4]) # convert to float ar = ar.astype('float') # set all values to nan ar.fill(np.nan) # display the array ar
Output:
array([nan, nan, nan, nan, nan, nan, nan])
Now all the values in the array are nan.
You might also be interested in –
- Numpy – Get the Sign of Each Element in Array
- Get the Median of Numpy Array – (With Examples)
- Numpy – Get Standard Deviation of Array Values
- Numpy – Get Min Value in Array
Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.