Replace NaN's en la matriz NumPy con el valor más cercano que no sea NaN

Tengo una matriz NumPya gusta lo siguiente:

>>> str(a)
'[        nan         nan         nan  1.44955726  1.44628034  1.44409573\n  1.4408188   1.43657094  1.43171624  1.42649744  1.42200684  1.42117704\n  1.42040255  1.41922908         nan         nan         nan         nan\n         nan         nan]'

Quiero reemplazar cada NaN con el valor más cercano que no sea NaN, para que todos los NaN al principio se establezcan en1.449... y todos los NaN al final se configuran en1.419....

Puedo ver cómo hacer esto para casos específicos como este, pero necesito poder hacerlo generalmente para cualquier longitud de matriz, con cualquier longitud de NaN al principio y al final de la matriz (no habrá NaN en el medio de los números). ¿Algunas ideas

Puedo encontrar los NaN con bastante facilidad connp.isnan(), pero no puedo entender cómo obtener el valor más cercano a cada NaN.

Respuestas a la pregunta(14)

Su respuesta a la pregunta