замените нулевое значение NaN после операции с массивами - PullRequest
5 голосов
/ 26 ноября 2009

как я могу заменить значение NaN в массиве, ноль, если операция выполняется таким образом, чтобы в результате вместо значения NaN было ноль операций, как

0/0 = NaN можно заменить на 0

Ответы [ 2 ]

9 голосов
/ 26 ноября 2009

Если у вас есть Python 2.6, у вас есть функция math.isnan() для поиска NaN значений.

При этом мы можем использовать понимание списка для замены значений NaN в списке следующим образом:

import math
mylist = [0 if math.isnan(x) else x for x in mylist]

Если у вас есть Python 2.5, мы можем использовать трюк NaN != NaN из этого вопроса , поэтому вы сделаете следующее:

mylist = [0 if x != x else x for x in mylist]
3 голосов
/ 19 мая 2015
import numpy
a=numpy.array([1,2,3,'NaN',4])
s=numpy.isnan(a)
a[s]=0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...