Reputation: 8911
how can I replace the NaN value in an array, zero if an operation is performed such that as a result instead of the NaN value is zero operations as
0 / 0 = NaN can be replaced by 0
Upvotes: 18
Views: 49425
Reputation: 1
import numpy
alpha = numpy.array([1,2,3,numpy.nan,4])
n = numpy.nan_to_num(alpha)
print(n)
output : array([1., 2., 3., 0., 4.])
Upvotes: 0
Reputation: 167
There is also a pandas solution to this.
import pandas as pd
mylist = [2.3, pd.NA, 1.1, 0.7]
mylist = [0 if pd.isna(x) else x for x in mylist]
Upvotes: 3
Reputation: 211
import numpy
a=numpy.array([1,2,3,'NaN',4])
s=numpy.isnan(a)
a[s]=0.0
Upvotes: 6
Reputation: 193706
If you have Python 2.6 you have the math.isnan()
function to find NaN
values.
With this we can use a list comprehension to replace the NaN
values in a list as follows:
import math
mylist = [0 if math.isnan(x) else x for x in mylist]
If you have Python 2.5 we can use the NaN != NaN
trick from this question so you do this:
mylist = [0 if x != x else x for x in mylist]
Upvotes: 33