«Isnotnan» функциональность в numpy, может ли это быть более pythonic?

Мне нужна функция, которая возвращает значения, отличные от NaN, из массива. В настоящее время я делаю это так:

>>> a = np.array([np.nan, 1, 2]) >>> a array([ NaN, 1., 2.]) >>> np.invert(np.isnan(a)) array([False, True, True], dtype=bool) >>> a[np.invert(np.isnan(a))] array([ 1., 2.]) 

Python: 2.6.4 numpy: 1.3.0

Пожалуйста, поделитесь, если вы знаете лучший способ, спасибо

2 Solutions collect form web for “«Isnotnan» функциональность в numpy, может ли это быть более pythonic?”

 a = a[~np.isnan(a)] 

В настоящее время вы тестируете все, что не является NaN, и mtrw имеет правильный способ сделать это. Если вы заинтересованы в тестировании конечных чисел (не NaN и не INF), вам не нужна инверсия и вы можете использовать:

 np.isfinite(a) 

Больше pythonic и native, легко читается, и часто, когда вы хотите избежать NaN, вы также хотите избежать INF в моем опыте.

Просто подумал, что я брошу это для людей.

  • ValueError: неизвестно, не поддерживается в sklearn.RFECV
  • Нужно сравнивать очень большие файлы размером около 1,5 ГБ в python
  • Каков правильный способ передачи параметров в stats.friedmanchisquare на основе DataFrame?
  • Как найти диаметр объектов с помощью обработки изображений в Python?
  • Построение 2D-карты тепла с помощью Matplotlib
  • Python Numpy или Pandas Linear Interpolation для значений, связанных с датой
  • иерархическая кластеризация на корреляциях в Python scipy / numpy?
  • NumPy: Довольно печатать табличные данные
  • Как можно эффективно удалить столбец из разреженной матрицы?
  • Эффективная идентификация смежных элементов в матрице numpy
  • Почему pyplot.contour () требует, чтобы Z был 2D-массивом?
  • Python - лучший язык программирования в мире.