Как проверить список, содержащий NaN

В моем цикле for мой код генерирует такой список:

list([0.0,0.0]/sum([0.0,0.0])) 

Петля генерирует всевозможные другие векторы числа, но также генерирует [nan,nan] , и, чтобы избежать этого, я попытался установить условное условие, чтобы предотвратить его, как показано ниже, но оно не возвращает true.

 nan in list([0.0,0.0]/sum([0.0,0.0])) >>> False 

Разве это не должно возвращаться?

введите описание изображения здесь

Библиотеки, которые я загрузил:

 import PerformanceAnalytics as perf import DataAnalyticsHelpers import DataHelpers as data import OptimizationHelpers as optim from matplotlib.pylab import * from pandas.io.data import DataReader from datetime import datetime,date,time import tradingWithPython as twp import tradingWithPython.lib.yahooFinance as data_downloader # used to get data from yahoo finance import pandas as pd # as always. import numpy as np import zipline as zp from scipy.optimize import minimize from itertools import product, combinations import time from math import isnan 

2 Solutions collect form web for “Как проверить список, содержащий NaN”

Я думаю, что это имеет смысл из-за того, что вы numpy косвенной косвенности посредством импорта звезды.

 >>> import numpy as np >>> [0.0,0.0]/0 Traceback (most recent call last): File "<ipython-input-3-aae9e30b3430>", line 1, in <module> [0.0,0.0]/0 TypeError: unsupported operand type(s) for /: 'list' and 'int' >>> [0.0,0.0]/np.float64(0) array([ nan, nan]) 

Когда вы это сделали

 from matplotlib.pylab import * 

он потянул numpy.sum :

 >>> from matplotlib.pylab import * >>> sum is np.sum True >>> [0.0,0.0]/sum([0.0, 0.0]) array([ nan, nan]) 

Вы можете проверить, что этот nan объект ( nan не является уникальным вообще) находится в списке через идентификатор, но если вы попробуете его в array он, кажется, проверяет через равенство, а nan != nan :

 >>> nan == nan False >>> nan == nan, nan is nan (False, True) >>> nan in [nan] True >>> nan in np.array([nan]) False 

Вы можете использовать np.isnan :

 >>> np.isnan([nan, nan]) array([ True, True], dtype=bool) >>> np.isnan([nan, nan]).any() True 

Вы должны использовать math модуль.

 >>> import math >>> math.isnan(item) 
  • Зачем возвращать что-либо, кроме `self` из` __iadd__`?
  • Выполнение функции по имени переменной в Python
  • Как округлить каждый элемент в списке поплавков до двух знаков после запятой?
  • Ошибка импорта для модели пользователя
  • Отдельные слова в списке, а затем печать позиций этих слов
  • Загрузка файла 41MB с помощью ast.literal_eval вызывает MemoryError
  • Путь Python для пула приложений Google App Engine
  • Как использовать API-интерфейс Firebase REST (Python) для аутентификации пользователя?
  • Когда «Незаполненная ласточка» будет «сделана» или «готова» для реального использования?
  • Сравнение истинной ложной путаницы
  • Python: как удалить дубликаты списков в списке?
  • Python - лучший язык программирования в мире.