How to replace numpy NaNs by last non-NaN value

Use bottleneck.push:

import bottleneck

y = bottleneck.push(y, axis=0)

If not installed already, you can install bottleneck using

pip install bottleneck