Причина - в отдельных ошибках, связанных с тем, как работает np.arange
:
>>> np.arange(0, 10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Необходимо внести два изменения. Во-первых, x_srtrm
и y_srtrm
go от 0 до 3, поэтому вам необходимо сохранить это при повышении частоты дискретизации:
I = itp.interp2d(x_srtrm, y_srtrm, z_srtrm, kind='cubic')
xi = np.linspace(0, 3, 100)
yi = np.linspace(0, 3, 100)
Z = I(xi, yi)
Во-вторых, zx
и zy
go от 0 до 99, поэтому вы должны учитывать это при понижении частоты дискретизации:
I_inv = itp.interp2d(zx, zy, Z, kind='cubic')
xj = np.linspace(0, 99, 4)
yj = np.linspace(0, 99, 4)
z = I_inv(xj, yj)