У меня есть массив 512X512 со значениями NaN.
Я использую scipy.interpolate.griddata для интерполяции этих значений NaN.
Но я получил странный результат, когда метод griddata = ' Cubi c». (но с методом 'linear' и 'near' эти результаты кажутся великолепными.)
Я что-то не так делаю с моим кодом?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import interpolate
data = pd.read_csv('data_with_nan.csv', header=None)
array = np.array(data)
x = np.arange(0, array.shape[1])
y = np.arange(0, array.shape[0])
#mask invalid values
array = np.ma.masked_invalid(array)
xx, yy = np.meshgrid(x, y)
#get only the valid values
x1 = xx[~array.mask]
y1 = yy[~array.mask]
newarr = array[~array.mask]
GD1 = interpolate.griddata((x1, y1), newarr.ravel(), (xx, yy), method='cubic') #cubic, linear, nearest
plt.imshow(GD1)
plt.show()