Замените NaN в массиве NumPy ближайшим значением, отличным от NaN

У меня есть Numpy Array A Как и следующее:

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

Я хочу заменить каждого NAN с самым близким -NaN, чтобы все NaN в начале были установлены на 1,449... , а все NaN в конце были установлены на 1,419... .

Я вижу, как это сделать для конкретных случаев, подобных этому, но мне нужно иметь возможность сделать это в целом для любой длины массива, с любой длиной NaN в начале и в конце массива (не будет NaN в середине чисел). Есть идеи?

Я могу легко найти NaN с помощью np.isnan(), но я не могу понять, как получить ближайшее значение к каждому NaN.

19
задан Josh Lee 2 March 2012 в 17:20
поделиться