Remplacer les NaN dans le tableau NumPy avec la valeur non-NaN la plus proche

J'ai un tableau NumPy a comme suit:

>>> 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]'

Je veux remplacer chaque NaN le plus proche de la non-valeur NaN, de sorte que tous les NaN au début, se mettre à 1.449... et l'ensemble de la NaN est à la fin préparez-vous à 1.419....

Je peux voir comment le faire pour des cas spécifiques, comme ça, mais j'ai besoin d'être en mesure de le faire en général, pour toute longueur de tableau, avec toute la longueur de NaN est au début et à la fin du tableau (il n'y aura pas NaN est au milieu de ces chiffres). Des idées?

Je peux trouver le NaN est assez facilement avec np.isnan()mais je ne peux pas travailler sur la façon d'obtenir la valeur la plus proche à chaque NaN.

source d'informationauteur robintw | 2012-03-02