【发布时间】:2012-10-14 14:30:33
【问题描述】:
我正在寻找一种简洁的方式:
a = numpy.array([1,4,1,numpy.nan,2,numpy.nan])
到:
b = numpy.array([1,5,6,numpy.nan,8,numpy.nan])
目前我能做的最好的事情是:
b = numpy.insert(numpy.cumsum(a[numpy.isfinite(a)]), (numpy.argwhere(numpy.isnan(a)) - numpy.arange(len(numpy.argwhere(numpy.isnan(a))))), numpy.nan)
有没有更短的方法来完成同样的事情?沿着二维数组的轴做一个 cumsum 怎么样?
【问题讨论】:
-
numpy 在 1.12.0 版本中添加了
nancumsum函数。它并不能直接做你想做的事,因为它会给你结果[1, 5, 6, 6, 8, 8]。
标签: python arrays numpy nan cumsum