Sto cercando un modo succinto per andare da:NumPy cumSum considerando NaNs
a = numpy.array([1,4,1,numpy.nan,2,numpy.nan])
a:
b = numpy.array([1,5,6,numpy.nan,8,numpy.nan])
Il meglio che posso fare al momento è:
b = numpy.insert(numpy.cumsum(a[numpy.isfinite(a)]), (numpy.argwhere(numpy.isnan(a)) - numpy.arange(len(numpy.argwhere(numpy.isnan(a))))), numpy.nan)
Is c'è un modo più breve per realizzare lo stesso? Che dire di fare un cums lungo un asse di un array 2D?
NumPy ha una funzione di 'nancumsum' aggiunta nella versione 1.12.0. Non fa esattamente ciò che vuoi direttamente, dal momento che ti darebbe il risultato '[1, 5, 6, 8, 8]'. –