Функциональность "isnotnan" в Numpy, может ли это быть больше питон?

StackOverflow https://stackoverflow.com/questions/2831516

  •  26-09-2019
  •  | 
  •  

Вопрос

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

>>> 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

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

Это было полезно?

Решение

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

Другие советы

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

np.isfinite(a)

Подробнее Pythonic и родной, легкий прочитанный и часто, когда вы хотите избежать NAN, вы также хотите избежать INF в моем опыте.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top