Tôi đang tìm kiếm một cách gọn gàng để đi từ:NumPy cumsum xem xét Nans
a = numpy.array([1,4,1,numpy.nan,2,numpy.nan])
tới:
b = numpy.array([1,5,6,numpy.nan,8,numpy.nan])
Điều tốt nhất tôi hiện có thể làm là:
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ó cách nào ngắn hơn để thực hiện tương tự không? Điều gì về làm một cumsum dọc theo một trục của một mảng 2D?
NumPy có một' chức năng nancumsum' được thêm vào trong phiên bản 1.12.0. Nó không hoàn toàn làm những gì bạn muốn trực tiếp mặc dù nó sẽ cho bạn kết quả '[1, 5, 6, 6, 8, 8]'. –