np.maximum。累加nan值

时间:2018-11-29 20:47:55

标签: numpy

似乎np.maximum.accumulate函数不能很好地处理nan。

import numpy as np

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

在第二个元素之后给出所有的nan。

如何获取结果[1,np.nan,3,3]

1 个答案:

答案 0 :(得分:2)

使用numpy.fmax.accumulate,它会忽略nan

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

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

如果您需要保留nan

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