np.maximum.accumulate со значениями nan - PullRequest
0 голосов
/ 29 ноября 2018

Кажется, функция np.maximum.accumulate плохо обрабатывает nan.

import numpy as np

arr = np.array([1,np.nan,3,1])
np.maximum.accumulate(arr)

дает все nans после 2-го элемента.

Как получить результат [1,np.nan,3,3]?

1 Ответ

0 голосов
/ 29 ноября 2018

Используйте numpy.fmax.accumulate, который игнорирует nan s:

arr = np.array([1,np.nan,3,1])

np.fmax.accumulate(arr)
# array([1., 1., 3., 3.])

Если вам нужно сохранить nan s:

np.where(np.isnan(arr), np.nan, np.fmax.accumulate(arr))
# array([ 1., nan,  3.,  3.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...