I have a 2D array with some NaN values. I would like to inpaint (interpolate) those values using the locations where I have data. The array looks like the one below.
If possible I would like to do the interpolation so that, as I move away from non-NaN values, I get increasingly closer to the value 0.
How can I do this?
I read about gridddata, but it seems to be designed to work with unstructured N-dim data. I also read the answers in other threads, but I think their starting point is different.
array([[ nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan],
[ 1. , 0. , 1. , 0. , 0.25 ,
nan, 0. , nan, nan, nan],
[ nan, 0. , nan, 0.25 , 0.66666667,
0.25 , 0.66666667, 0. , 1. , nan],
[ 0. , 0.5 , 0.66666667, 0.8 , 0.66666667,
0.8 , 0.5 , 0.83333333, nan, nan],
[ 0.625 , 0.5625 , 0.9 , 0.8 , 0.8 ,
0.83333333, 0.57142857, 0.66666667, 0.5 , nan],
[ nan, 1. , 0.71428571, 0.85714286, 1. ,
1. , 1. , nan, nan, nan],
[ nan, nan, nan, nan, 1. ,
1. , nan, nan, nan, nan]])